From c54e06b819fdb124c741566c5828fb787d6d51b3 Mon Sep 17 00:00:00 2001
From: Huseyn Guliyev <husayt@gmail.com>
Date: Sun, 13 Nov 2022 22:41:19 +0000
Subject: [PATCH 01/20] 2.4.15

---
 dist/quran-meta.common.js               | 2 +-
 dist/quran-meta.esm.browser.js          | 2 +-
 dist/quran-meta.esm.js                  | 2 +-
 dist/quran-meta.js                      | 2 +-
 docs/functions/ayaStringSplitter.html   | 2 +-
 docs/functions/findAyaidBySurah.html    | 2 +-
 docs/functions/findJuz.html             | 2 +-
 docs/functions/findJuzAndShift.html     | 2 +-
 docs/functions/findJuzByAyaid.html      | 2 +-
 docs/functions/findJuzHizb.html         | 2 +-
 docs/functions/findJuzHizbByAyaid.html  | 2 +-
 docs/functions/findJuzMetaBySurah.html  | 2 +-
 docs/functions/findPage.html            | 2 +-
 docs/functions/findRangeAroundAyah.html | 2 +-
 docs/functions/findSurahByAyaid.html    | 2 +-
 docs/functions/getAyaCountinSura.html   | 2 +-
 docs/functions/getSurahMeta.html        | 2 +-
 docs/functions/isAyahJuzFirst.html      | 2 +-
 docs/functions/isAyahPageFirst.html     | 2 +-
 docs/functions/nextAyah.html            | 2 +-
 docs/functions/pageMeta-1.html          | 2 +-
 docs/functions/prevAyah.html            | 2 +-
 docs/types/AyahId.html                  | 2 +-
 docs/types/AyahNo.html                  | 2 +-
 docs/types/Juz.html                     | 2 +-
 docs/types/JuzMeta.html                 | 2 +-
 docs/types/Page.html                    | 2 +-
 docs/types/PageMeta.html                | 2 +-
 docs/types/Sajda.html                   | 2 +-
 docs/types/Surah.html                   | 2 +-
 docs/types/SurahAyah.html               | 2 +-
 docs/types/SurahMeta.html               | 2 +-
 docs/variables/HizbQuarterList.html     | 2 +-
 docs/variables/JuzList.html             | 2 +-
 docs/variables/ManzilList.html          | 2 +-
 docs/variables/PageList.html            | 2 +-
 docs/variables/RukuList.html            | 2 +-
 docs/variables/SajdaList.html           | 2 +-
 docs/variables/SuraList.html            | 2 +-
 docs/variables/meta.html                | 2 +-
 docs/variables/suraNamesEn.html         | 2 +-
 docs/variables/suraNamesRu.html         | 2 +-
 42 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/dist/quran-meta.common.js b/dist/quran-meta.common.js
index 3c02bb4..b6839f3 100644
--- a/dist/quran-meta.common.js
+++ b/dist/quran-meta.common.js
@@ -1,5 +1,5 @@
 /*! 
- * Quran Meta library 2.4.13
+ * Quran Meta library 2.4.15
  *
  * Released under the MIT license
  */
diff --git a/dist/quran-meta.esm.browser.js b/dist/quran-meta.esm.browser.js
index 14a0832..ccb3f43 100644
--- a/dist/quran-meta.esm.browser.js
+++ b/dist/quran-meta.esm.browser.js
@@ -1,5 +1,5 @@
 /*! 
- * Quran Meta library 2.4.13
+ * Quran Meta library 2.4.15
  *
  * Released under the MIT license
  */
diff --git a/dist/quran-meta.esm.js b/dist/quran-meta.esm.js
index 6fb7420..6277a8f 100644
--- a/dist/quran-meta.esm.js
+++ b/dist/quran-meta.esm.js
@@ -1,5 +1,5 @@
 /*! 
- * Quran Meta library 2.4.13
+ * Quran Meta library 2.4.15
  *
  * Released under the MIT license
  */
diff --git a/dist/quran-meta.js b/dist/quran-meta.js
index 40da556..6dbaab3 100644
--- a/dist/quran-meta.js
+++ b/dist/quran-meta.js
@@ -1,5 +1,5 @@
 /*! 
- * Quran Meta library 2.4.13
+ * Quran Meta library 2.4.15
  *
  * Released under the MIT license
  */
diff --git a/docs/functions/ayaStringSplitter.html b/docs/functions/ayaStringSplitter.html
index cd36396..60ff2d5 100644
--- a/docs/functions/ayaStringSplitter.html
+++ b/docs/functions/ayaStringSplitter.html
@@ -32,7 +32,7 @@ <h5>str: <span class="tsd-signature-type">string</span></h5>
 </div></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">SurahAyahSegment</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/ayaStringSplitter.ts#L8">ayaStringSplitter.ts:8</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/ayaStringSplitter.ts#L8">ayaStringSplitter.ts:8</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findAyaidBySurah.html b/docs/functions/findAyaidBySurah.html
index c19ad52..4579d41 100644
--- a/docs/functions/findAyaidBySurah.html
+++ b/docs/functions/findAyaidBySurah.html
@@ -28,7 +28,7 @@ <h5>surah: <span class="tsd-signature-type">number</span></h5></li>
 <h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L322">index.ts:322</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L322">index.ts:322</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findJuz.html b/docs/functions/findJuz.html
index 524cee7..019f220 100644
--- a/docs/functions/findJuz.html
+++ b/docs/functions/findJuz.html
@@ -30,7 +30,7 @@ <h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signatu
 <h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L175">index.ts:175</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L175">index.ts:175</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findJuzAndShift.html b/docs/functions/findJuzAndShift.html
index 03c4063..8d3ab9c 100644
--- a/docs/functions/findJuzAndShift.html
+++ b/docs/functions/findJuzAndShift.html
@@ -40,7 +40,7 @@ <h5>juz<span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" c
 <li class="tsd-parameter">
 <h5>left<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h5></li></ul><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L241">index.ts:241</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L241">index.ts:241</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findJuzByAyaid.html b/docs/functions/findJuzByAyaid.html
index 60fb650..be5564f 100644
--- a/docs/functions/findJuzByAyaid.html
+++ b/docs/functions/findJuzByAyaid.html
@@ -26,7 +26,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 <h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L153">index.ts:153</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L153">index.ts:153</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findJuzHizb.html b/docs/functions/findJuzHizb.html
index a885d29..d73de07 100644
--- a/docs/functions/findJuzHizb.html
+++ b/docs/functions/findJuzHizb.html
@@ -30,7 +30,7 @@ <h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signatu
 <h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">JuzHizb</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L187">index.ts:187</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L187">index.ts:187</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findJuzHizbByAyaid.html b/docs/functions/findJuzHizbByAyaid.html
index 7e4d085..b8e8e67 100644
--- a/docs/functions/findJuzHizbByAyaid.html
+++ b/docs/functions/findJuzHizbByAyaid.html
@@ -26,7 +26,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 <h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">JuzHizb</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L162">index.ts:162</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L162">index.ts:162</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findJuzMetaBySurah.html b/docs/functions/findJuzMetaBySurah.html
index 13befcd..9ce7d13 100644
--- a/docs/functions/findJuzMetaBySurah.html
+++ b/docs/functions/findJuzMetaBySurah.html
@@ -32,7 +32,7 @@ <h5>surah: <span class="tsd-signature-type">number</span></h5></li>
 <h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/JuzMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">JuzMeta</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L272">index.ts:272</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L272">index.ts:272</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findPage.html b/docs/functions/findPage.html
index 6655e25..52aef2f 100644
--- a/docs/functions/findPage.html
+++ b/docs/functions/findPage.html
@@ -30,7 +30,7 @@ <h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
 <h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L309">index.ts:309</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L309">index.ts:309</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findRangeAroundAyah.html b/docs/functions/findRangeAroundAyah.html
index acd24aa..687435a 100644
--- a/docs/functions/findRangeAroundAyah.html
+++ b/docs/functions/findRangeAroundAyah.html
@@ -37,7 +37,7 @@ <h5>mode: <span class="tsd-signature-type">&quot;surah&quot;</span><span class="
 <h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L413">index.ts:413</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L413">index.ts:413</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/findSurahByAyaid.html b/docs/functions/findSurahByAyaid.html
index 031bcef..66b483d 100644
--- a/docs/functions/findSurahByAyaid.html
+++ b/docs/functions/findSurahByAyaid.html
@@ -26,7 +26,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 <h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L140">index.ts:140</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L140">index.ts:140</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/getAyaCountinSura.html b/docs/functions/getAyaCountinSura.html
index cc72db6..cebf90c 100644
--- a/docs/functions/getAyaCountinSura.html
+++ b/docs/functions/getAyaCountinSura.html
@@ -26,7 +26,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 <h5>surah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L331">index.ts:331</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L331">index.ts:331</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/getSurahMeta.html b/docs/functions/getSurahMeta.html
index 1d896c9..5cbb19c 100644
--- a/docs/functions/getSurahMeta.html
+++ b/docs/functions/getSurahMeta.html
@@ -28,7 +28,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 <h5>surah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L299">index.ts:299</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L299">index.ts:299</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/isAyahJuzFirst.html b/docs/functions/isAyahJuzFirst.html
index da15277..9981eb3 100644
--- a/docs/functions/isAyahJuzFirst.html
+++ b/docs/functions/isAyahJuzFirst.html
@@ -32,7 +32,7 @@ <h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
 <h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L203">index.ts:203</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L203">index.ts:203</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/isAyahPageFirst.html b/docs/functions/isAyahPageFirst.html
index 6a0e23e..63d5498 100644
--- a/docs/functions/isAyahPageFirst.html
+++ b/docs/functions/isAyahPageFirst.html
@@ -32,7 +32,7 @@ <h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
 <h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L221">index.ts:221</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L221">index.ts:221</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/nextAyah.html b/docs/functions/nextAyah.html
index 3028eac..331d300 100644
--- a/docs/functions/nextAyah.html
+++ b/docs/functions/nextAyah.html
@@ -28,7 +28,7 @@ <h5>surah: <span class="tsd-signature-type">number</span></h5></li>
 <h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L340">index.ts:340</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L340">index.ts:340</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/pageMeta-1.html b/docs/functions/pageMeta-1.html
index 3442dcc..d685245 100644
--- a/docs/functions/pageMeta-1.html
+++ b/docs/functions/pageMeta-1.html
@@ -28,7 +28,7 @@ <h4 class="tsd-parameters-title">Parameters</h4>
 <h5>pageNum: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/PageMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">PageMeta</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L364">index.ts:364</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L364">index.ts:364</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/functions/prevAyah.html b/docs/functions/prevAyah.html
index 08b98e8..10d6744 100644
--- a/docs/functions/prevAyah.html
+++ b/docs/functions/prevAyah.html
@@ -28,7 +28,7 @@ <h5>surah: <span class="tsd-signature-type">number</span></h5></li>
 <h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L353">index.ts:353</a></li></ul></aside></li></ul></section></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L353">index.ts:353</a></li></ul></aside></li></ul></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/AyahId.html b/docs/types/AyahId.html
index 4063197..54fe360 100644
--- a/docs/types/AyahId.html
+++ b/docs/types/AyahId.html
@@ -17,7 +17,7 @@
 <h1>Type alias AyahId</h1></div>
 <div class="tsd-signature">Ayah<wbr/>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L4">types.ts:4</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L4">types.ts:4</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/AyahNo.html b/docs/types/AyahNo.html
index ebff912..d5f1eee 100644
--- a/docs/types/AyahNo.html
+++ b/docs/types/AyahNo.html
@@ -17,7 +17,7 @@
 <h1>Type alias AyahNo</h1></div>
 <div class="tsd-signature">Ayah<wbr/>No<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L3">types.ts:3</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L3">types.ts:3</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/Juz.html b/docs/types/Juz.html
index 1ff0770..54945b1 100644
--- a/docs/types/Juz.html
+++ b/docs/types/Juz.html
@@ -17,7 +17,7 @@
 <h1>Type alias Juz</h1></div>
 <div class="tsd-signature">Juz<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L6">types.ts:6</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L6">types.ts:6</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/JuzMeta.html b/docs/types/JuzMeta.html
index 65ab900..4a7daae 100644
--- a/docs/types/JuzMeta.html
+++ b/docs/types/JuzMeta.html
@@ -30,7 +30,7 @@ <h5>right<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="
 <li class="tsd-parameter">
 <h5>right<wbr/>Juz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h5></li></ul></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L20">types.ts:20</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L20">types.ts:20</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/Page.html b/docs/types/Page.html
index e92914f..275b75d 100644
--- a/docs/types/Page.html
+++ b/docs/types/Page.html
@@ -17,7 +17,7 @@
 <h1>Type alias Page</h1></div>
 <div class="tsd-signature">Page<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L5">types.ts:5</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L5">types.ts:5</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/PageMeta.html b/docs/types/PageMeta.html
index 998f797..cf03f83 100644
--- a/docs/types/PageMeta.html
+++ b/docs/types/PageMeta.html
@@ -26,7 +26,7 @@ <h5>last<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" cla
 <li class="tsd-parameter">
 <h5>page<wbr/>Num<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a></h5></li></ul></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L14">types.ts:14</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L14">types.ts:14</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/Sajda.html b/docs/types/Sajda.html
index 2f66698..bdf238e 100644
--- a/docs/types/Sajda.html
+++ b/docs/types/Sajda.html
@@ -17,7 +17,7 @@
 <h1>Type alias Sajda</h1></div>
 <div class="tsd-signature">Sajda<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SajdaType</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L29">types.ts:29</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L29">types.ts:29</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/Surah.html b/docs/types/Surah.html
index 608aa02..04497bf 100644
--- a/docs/types/Surah.html
+++ b/docs/types/Surah.html
@@ -17,7 +17,7 @@
 <h1>Type alias Surah</h1></div>
 <div class="tsd-signature">Surah<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L2">types.ts:2</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L2">types.ts:2</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/SurahAyah.html b/docs/types/SurahAyah.html
index 969605b..2fe2a47 100644
--- a/docs/types/SurahAyah.html
+++ b/docs/types/SurahAyah.html
@@ -17,7 +17,7 @@
 <h1>Type alias SurahAyah</h1></div>
 <div class="tsd-signature">Surah<wbr/>Ayah<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="Surah.html" class="tsd-signature-type" data-tsd-kind="Type alias">Surah</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahNo</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L12">types.ts:12</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L12">types.ts:12</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/types/SurahMeta.html b/docs/types/SurahMeta.html
index 5f473df..939b82e 100644
--- a/docs/types/SurahMeta.html
+++ b/docs/types/SurahMeta.html
@@ -17,7 +17,7 @@
 <h1>Type alias SurahMeta</h1></div>
 <div class="tsd-signature">Surah<wbr/>Meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>startAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">, </span>ayahCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>surahOrder<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>rukuCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span>isMeccan<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">, </span>page<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/types.ts#L31">types.ts:31</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L31">types.ts:31</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/HizbQuarterList.html b/docs/variables/HizbQuarterList.html
index 045b6e6..5d9ff31 100644
--- a/docs/variables/HizbQuarterList.html
+++ b/docs/variables/HizbQuarterList.html
@@ -17,7 +17,7 @@
 <h1>Variable HizbQuarterList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">Hizb<wbr/>Quarter<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/hizbList.ts#L3">hizbList.ts:3</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/hizbList.ts#L3">hizbList.ts:3</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/JuzList.html b/docs/variables/JuzList.html
index 8be11a9..6b00b0a 100644
--- a/docs/variables/JuzList.html
+++ b/docs/variables/JuzList.html
@@ -17,7 +17,7 @@
 <h1>Variable JuzList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">Juz<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L38">index.ts:38</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L38">index.ts:38</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/ManzilList.html b/docs/variables/ManzilList.html
index 5a0bf8b..934b778 100644
--- a/docs/variables/ManzilList.html
+++ b/docs/variables/ManzilList.html
@@ -17,7 +17,7 @@
 <h1>Variable ManzilList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">Manzil<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L49">index.ts:49</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L49">index.ts:49</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/PageList.html b/docs/variables/PageList.html
index f71491e..fdcbbad 100644
--- a/docs/variables/PageList.html
+++ b/docs/variables/PageList.html
@@ -17,7 +17,7 @@
 <h1>Variable PageList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">Page<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/pageList.ts#L3">pageList.ts:3</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/pageList.ts#L3">pageList.ts:3</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/RukuList.html b/docs/variables/RukuList.html
index 5f37b20..db066d7 100644
--- a/docs/variables/RukuList.html
+++ b/docs/variables/RukuList.html
@@ -17,7 +17,7 @@
 <h1>Variable RukuList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">Ruku<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/rukuList.ts#L3">rukuList.ts:3</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/rukuList.ts#L3">rukuList.ts:3</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/SajdaList.html b/docs/variables/SajdaList.html
index c9bbcf0..68700c5 100644
--- a/docs/variables/SajdaList.html
+++ b/docs/variables/SajdaList.html
@@ -17,7 +17,7 @@
 <h1>Variable SajdaList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">Sajda<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/Sajda.html" class="tsd-signature-type" data-tsd-kind="Type alias">Sajda</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/index.ts#L69">index.ts:69</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L69">index.ts:69</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/SuraList.html b/docs/variables/SuraList.html
index 1c1fcdd..b4ddddd 100644
--- a/docs/variables/SuraList.html
+++ b/docs/variables/SuraList.html
@@ -17,7 +17,7 @@
 <h1>Variable SuraList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">Sura<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/surahList.ts#L3">surahList.ts:3</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/surahList.ts#L3">surahList.ts:3</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/meta.html b/docs/variables/meta.html
index d3c0625..30c4e98 100644
--- a/docs/variables/meta.html
+++ b/docs/variables/meta.html
@@ -17,7 +17,7 @@
 <h1>Variable meta<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">QuranMeta</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/const.ts#L9">const.ts:9</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/const.ts#L9">const.ts:9</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/suraNamesEn.html b/docs/variables/suraNamesEn.html
index d3f1cc3..7f8563b 100644
--- a/docs/variables/suraNamesEn.html
+++ b/docs/variables/suraNamesEn.html
@@ -17,7 +17,7 @@
 <h1>Variable suraNamesEn<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">sura<wbr/>Names<wbr/>En<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">SuraName</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/i18n/sura.en.ts#L2">i18n/sura.en.ts:2</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/i18n/sura.en.ts#L2">i18n/sura.en.ts:2</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/variables/suraNamesRu.html b/docs/variables/suraNamesRu.html
index 2607bf0..2850dd6 100644
--- a/docs/variables/suraNamesRu.html
+++ b/docs/variables/suraNamesRu.html
@@ -17,7 +17,7 @@
 <h1>Variable suraNamesRu<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
 <div class="tsd-signature">sura<wbr/>Names<wbr/>Ru<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">SuraName</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/a8fc894/src/i18n/sura.ru.ts#L2">i18n/sura.ru.ts:2</a></li></ul></aside></div>
+<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/i18n/sura.ru.ts#L2">i18n/sura.ru.ts:2</a></li></ul></aside></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">

From fc4baeeee6dbfea033d2d5bcc6e643022d51623a Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Mon, 7 Oct 2024 12:44:57 +0100
Subject: [PATCH 02/20] chore: update deps

---
 package.json   |   47 +-
 pnpm-lock.yaml | 6677 +++++++++++++++++++++++++-----------------------
 2 files changed, 3480 insertions(+), 3244 deletions(-)

diff --git a/package.json b/package.json
index 3cd49ae..6a7b64c 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "surah",
     "juz"
   ],
-  "version": "2.4.15",
+  "version": "2.5.1",
   "license": "MIT",
   "jsdelivr": "dist/quran-meta.js",
   "unpkg": "dist/quran-meta.js",
@@ -37,8 +37,8 @@
     "build-ts-es": "tsc -d -p tsconfig.json --sourceMap --outDir lib_es --declarationDir types",
     "build-ts-cjs": "tsc -d -p tsconfig.json --sourceMap --outDir lib_cjs -m CommonJS -t ES5 -d false",
     "prepare-npm-package": "rimraf dist && rimraf lib_cjs && rimraf lib_es && rimraf dist && pnpm build",
-    "test": "jest",
-    "coverage": "jest --coverage",
+    "test": "vitest",
+    "coverage": "vitest run --coverage",
     "verify": "pnpm eslint && pnpm coverage",
     "tsdoc": "typedoc --out docs/ src/",
     "deploy": "###rollup -c config/rollup_dist.js && copyfiles dist/quran-meta.js docs/scripts",
@@ -47,28 +47,29 @@
     "release": "git push --follow-tags&&npm publish"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^23.0.2",
-    "@rollup/plugin-node-resolve": "^15.0.1",
-    "@rollup/plugin-typescript": "^9.0.2",
-    "@types/jest": "^29.2.2",
-    "@types/node": "16.0.0",
-    "@typescript-eslint/eslint-plugin": "^5.42.1",
-    "@typescript-eslint/parser": "^5.42.1",
+    "@rollup/plugin-commonjs": "^28.0.0",
+    "@rollup/plugin-node-resolve": "^15.3.0",
+    "@rollup/plugin-typescript": "^12.1.0",
+    "@types/jest": "^29.5.13",
+    "@types/node": "22.7.4",
+    "@typescript-eslint/eslint-plugin": "^8.8.0",
+    "@typescript-eslint/parser": "^8.8.0",
+    "@vitest/coverage-v8": "2.1.2",
     "copyfiles": "^2.4.1",
-    "eslint": "8.27.0",
-    "eslint-config-prettier": "^8.5.0",
-    "eslint-plugin-prettier": "^4.2.1",
-    "jest": "^29.3.1",
-    "prettier": "2.7.1",
-    "rimraf": "^3.0.2",
-    "rollup": "^3.3.0",
+    "eslint": "9.12.0",
+    "eslint-config-prettier": "^9.1.0",
+    "eslint-plugin-prettier": "^5.2.1",
+    "prettier": "3.3.3",
+    "rimraf": "^6.0.1",
+    "rollup": "^4.24.0",
     "rollup-plugin-terser": "^7.0.2",
     "source-map-support": "0.5.21",
     "standard-version": "^9.5.0",
-    "ts-jest": "^29.0.3",
-    "ts-node": "^10.9.1",
-    "tslib": "^2.4.1",
-    "typedoc": "^0.23.20",
-    "typescript": "^4.8.4"
-  }
+    "ts-node": "^10.9.2",
+    "tslib": "^2.7.0",
+    "typedoc": "^0.26.8",
+    "typescript": "^5.6.2",
+    "vitest": "latest"
+  },
+  "packageManager": "pnpm@9.11.0+sha512.0a203ffaed5a3f63242cd064c8fb5892366c103e328079318f78062f24ea8c9d50bc6a47aa3567cabefd824d170e78fa2745ed1f16b132e16436146b7688f19b"
 }
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2a40e0e..079c725 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,788 +1,400 @@
-lockfileVersion: 5.4
-
-specifiers:
-  '@rollup/plugin-commonjs': ^23.0.2
-  '@rollup/plugin-node-resolve': ^15.0.1
-  '@rollup/plugin-typescript': ^9.0.2
-  '@types/jest': ^29.2.2
-  '@types/node': 16.0.0
-  '@typescript-eslint/eslint-plugin': ^5.42.1
-  '@typescript-eslint/parser': ^5.42.1
-  copyfiles: ^2.4.1
-  eslint: 8.27.0
-  eslint-config-prettier: ^8.5.0
-  eslint-plugin-prettier: ^4.2.1
-  jest: ^29.3.1
-  prettier: 2.7.1
-  rimraf: ^3.0.2
-  rollup: ^3.3.0
-  rollup-plugin-terser: ^7.0.2
-  source-map-support: 0.5.21
-  standard-version: ^9.5.0
-  ts-jest: ^29.0.3
-  ts-node: ^10.9.1
-  tslib: ^2.4.1
-  typedoc: ^0.23.20
-  typescript: ^4.8.4
-
-devDependencies:
-  '@rollup/plugin-commonjs': 23.0.2_rollup@3.3.0
-  '@rollup/plugin-node-resolve': 15.0.1_rollup@3.3.0
-  '@rollup/plugin-typescript': 9.0.2_uxzoppybjjm3iv3alceonunahm
-  '@types/jest': 29.2.2
-  '@types/node': 16.0.0
-  '@typescript-eslint/eslint-plugin': 5.42.1_2udltptbznfmezdozpdoa2aemq
-  '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-  copyfiles: 2.4.1
-  eslint: 8.27.0
-  eslint-config-prettier: 8.5.0_eslint@8.27.0
-  eslint-plugin-prettier: 4.2.1_v7o5sx5x3wbs57ifz6wc4f76we
-  jest: 29.3.1_qgsvtivhigskinhtkon55hue3i
-  prettier: 2.7.1
-  rimraf: 3.0.2
-  rollup: 3.3.0
-  rollup-plugin-terser: 7.0.2_rollup@3.3.0
-  source-map-support: 0.5.21
-  standard-version: 9.5.0
-  ts-jest: 29.0.3_r24ewcothphvclnu77pxb4u4se
-  ts-node: 10.9.1_st2htz3eb6effj72w7hhhfw6hu
-  tslib: 2.4.1
-  typedoc: 0.23.20_typescript@4.8.4
-  typescript: 4.8.4
+lockfileVersion: '9.0'
+
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
+importers:
+
+  .:
+    devDependencies:
+      '@rollup/plugin-commonjs':
+        specifier: ^28.0.0
+        version: 28.0.0(rollup@4.24.0)
+      '@rollup/plugin-node-resolve':
+        specifier: ^15.3.0
+        version: 15.3.0(rollup@4.24.0)
+      '@rollup/plugin-typescript':
+        specifier: ^12.1.0
+        version: 12.1.0(rollup@4.24.0)(tslib@2.7.0)(typescript@5.6.2)
+      '@types/jest':
+        specifier: ^29.5.13
+        version: 29.5.13
+      '@types/node':
+        specifier: 22.7.4
+        version: 22.7.4
+      '@typescript-eslint/eslint-plugin':
+        specifier: ^8.8.0
+        version: 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2)
+      '@typescript-eslint/parser':
+        specifier: ^8.8.0
+        version: 8.8.0(eslint@9.12.0)(typescript@5.6.2)
+      '@vitest/coverage-v8':
+        specifier: 2.1.2
+        version: 2.1.2(vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1))
+      copyfiles:
+        specifier: ^2.4.1
+        version: 2.4.1
+      eslint:
+        specifier: 9.12.0
+        version: 9.12.0
+      eslint-config-prettier:
+        specifier: ^9.1.0
+        version: 9.1.0(eslint@9.12.0)
+      eslint-plugin-prettier:
+        specifier: ^5.2.1
+        version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.3.3)
+      prettier:
+        specifier: 3.3.3
+        version: 3.3.3
+      rimraf:
+        specifier: ^6.0.1
+        version: 6.0.1
+      rollup:
+        specifier: ^4.24.0
+        version: 4.24.0
+      rollup-plugin-terser:
+        specifier: ^7.0.2
+        version: 7.0.2(rollup@4.24.0)
+      source-map-support:
+        specifier: 0.5.21
+        version: 0.5.21
+      standard-version:
+        specifier: ^9.5.0
+        version: 9.5.0
+      ts-node:
+        specifier: ^10.9.2
+        version: 10.9.2(@types/node@22.7.4)(typescript@5.6.2)
+      tslib:
+        specifier: ^2.7.0
+        version: 2.7.0
+      typedoc:
+        specifier: ^0.26.8
+        version: 0.26.8(typescript@5.6.2)
+      typescript:
+        specifier: ^5.6.2
+        version: 5.6.2
+      vitest:
+        specifier: latest
+        version: 2.1.2(@types/node@22.7.4)(terser@5.34.1)
 
 packages:
 
-  /@ampproject/remapping/2.2.0:
-    resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
+  '@ampproject/remapping@2.3.0':
+    resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
     engines: {node: '>=6.0.0'}
-    dependencies:
-      '@jridgewell/gen-mapping': 0.1.1
-      '@jridgewell/trace-mapping': 0.3.17
-    dev: true
 
-  /@babel/code-frame/7.18.6:
-    resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
+  '@babel/code-frame@7.25.7':
+    resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/highlight': 7.18.6
-    dev: true
 
-  /@babel/compat-data/7.20.1:
-    resolution: {integrity: sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==}
+  '@babel/helper-string-parser@7.25.7':
+    resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@babel/core/7.20.2:
-    resolution: {integrity: sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==}
+  '@babel/helper-validator-identifier@7.25.7':
+    resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@ampproject/remapping': 2.2.0
-      '@babel/code-frame': 7.18.6
-      '@babel/generator': 7.20.4
-      '@babel/helper-compilation-targets': 7.20.0_@babel+core@7.20.2
-      '@babel/helper-module-transforms': 7.20.2
-      '@babel/helpers': 7.20.1
-      '@babel/parser': 7.20.3
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-      convert-source-map: 1.9.0
-      debug: 4.3.4
-      gensync: 1.0.0-beta.2
-      json5: 2.2.1
-      semver: 6.3.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@babel/generator/7.20.4:
-    resolution: {integrity: sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==}
+  '@babel/highlight@7.25.7':
+    resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==}
     engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-      '@jridgewell/gen-mapping': 0.3.2
-      jsesc: 2.5.2
-    dev: true
 
-  /@babel/helper-compilation-targets/7.20.0_@babel+core@7.20.2:
-    resolution: {integrity: sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/compat-data': 7.20.1
-      '@babel/core': 7.20.2
-      '@babel/helper-validator-option': 7.18.6
-      browserslist: 4.21.4
-      semver: 6.3.0
-    dev: true
+  '@babel/parser@7.25.7':
+    resolution: {integrity: sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==}
+    engines: {node: '>=6.0.0'}
+    hasBin: true
 
-  /@babel/helper-environment-visitor/7.18.9:
-    resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
+  '@babel/types@7.25.7':
+    resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@babel/helper-function-name/7.19.0:
-    resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/template': 7.18.10
-      '@babel/types': 7.20.2
-    dev: true
+  '@bcoe/v8-coverage@0.2.3':
+    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
 
-  /@babel/helper-hoist-variables/7.18.6:
-    resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@cspotcode/source-map-support@0.8.1':
+    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+    engines: {node: '>=12'}
 
-  /@babel/helper-module-imports/7.18.6:
-    resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@esbuild/aix-ppc64@0.21.5':
+    resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [aix]
 
-  /@babel/helper-module-transforms/7.20.2:
-    resolution: {integrity: sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-module-imports': 7.18.6
-      '@babel/helper-simple-access': 7.20.2
-      '@babel/helper-split-export-declaration': 7.18.6
-      '@babel/helper-validator-identifier': 7.19.1
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@esbuild/android-arm64@0.21.5':
+    resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [android]
 
-  /@babel/helper-plugin-utils/7.20.2:
-    resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  '@esbuild/android-arm@0.21.5':
+    resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [android]
 
-  /@babel/helper-simple-access/7.20.2:
-    resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@esbuild/android-x64@0.21.5':
+    resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [android]
 
-  /@babel/helper-split-export-declaration/7.18.6:
-    resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@esbuild/darwin-arm64@0.21.5':
+    resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [darwin]
 
-  /@babel/helper-string-parser/7.19.4:
-    resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  '@esbuild/darwin-x64@0.21.5':
+    resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [darwin]
 
-  /@babel/helper-validator-identifier/7.19.1:
-    resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  '@esbuild/freebsd-arm64@0.21.5':
+    resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [freebsd]
 
-  /@babel/helper-validator-option/7.18.6:
-    resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  '@esbuild/freebsd-x64@0.21.5':
+    resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [freebsd]
 
-  /@babel/helpers/7.20.1:
-    resolution: {integrity: sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/template': 7.18.10
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@esbuild/linux-arm64@0.21.5':
+    resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [linux]
 
-  /@babel/highlight/7.18.6:
-    resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/helper-validator-identifier': 7.19.1
-      chalk: 2.4.2
-      js-tokens: 4.0.0
-    dev: true
+  '@esbuild/linux-arm@0.21.5':
+    resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
+    engines: {node: '>=12'}
+    cpu: [arm]
+    os: [linux]
 
-  /@babel/parser/7.20.3:
-    resolution: {integrity: sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==}
-    engines: {node: '>=6.0.0'}
-    hasBin: true
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@esbuild/linux-ia32@0.21.5':
+    resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [linux]
 
-  /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/linux-loong64@0.21.5':
+    resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
+    engines: {node: '>=12'}
+    cpu: [loong64]
+    os: [linux]
 
-  /@babel/plugin-syntax-bigint/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/linux-mips64el@0.21.5':
+    resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
+    engines: {node: '>=12'}
+    cpu: [mips64el]
+    os: [linux]
 
-  /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.20.2:
-    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/linux-ppc64@0.21.5':
+    resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
+    engines: {node: '>=12'}
+    cpu: [ppc64]
+    os: [linux]
 
-  /@babel/plugin-syntax-import-meta/7.10.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/linux-riscv64@0.21.5':
+    resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
+    engines: {node: '>=12'}
+    cpu: [riscv64]
+    os: [linux]
 
-  /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/linux-s390x@0.21.5':
+    resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
+    engines: {node: '>=12'}
+    cpu: [s390x]
+    os: [linux]
 
-  /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.2:
-    resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/linux-x64@0.21.5':
+    resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [linux]
 
-  /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/netbsd-x64@0.21.5':
+    resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [netbsd]
 
-  /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/openbsd-x64@0.21.5':
+    resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [openbsd]
 
-  /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.20.2:
-    resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/sunos-x64@0.21.5':
+    resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [sunos]
 
-  /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/win32-arm64@0.21.5':
+    resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
+    engines: {node: '>=12'}
+    cpu: [arm64]
+    os: [win32]
 
-  /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/win32-ia32@0.21.5':
+    resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
+    engines: {node: '>=12'}
+    cpu: [ia32]
+    os: [win32]
 
-  /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.20.2:
-    resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@esbuild/win32-x64@0.21.5':
+    resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
+    engines: {node: '>=12'}
+    cpu: [x64]
+    os: [win32]
 
-  /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.20.2:
-    resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
-    engines: {node: '>=6.9.0'}
+  '@eslint-community/eslint-utils@4.4.0':
+    resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
     peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+      eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
 
-  /@babel/plugin-syntax-typescript/7.20.0_@babel+core@7.20.2:
-    resolution: {integrity: sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==}
-    engines: {node: '>=6.9.0'}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/helper-plugin-utils': 7.20.2
-    dev: true
+  '@eslint-community/regexpp@4.11.1':
+    resolution: {integrity: sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==}
+    engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
 
-  /@babel/template/7.18.10:
-    resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/code-frame': 7.18.6
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-    dev: true
+  '@eslint/config-array@0.18.0':
+    resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@babel/traverse/7.20.1:
-    resolution: {integrity: sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/code-frame': 7.18.6
-      '@babel/generator': 7.20.4
-      '@babel/helper-environment-visitor': 7.18.9
-      '@babel/helper-function-name': 7.19.0
-      '@babel/helper-hoist-variables': 7.18.6
-      '@babel/helper-split-export-declaration': 7.18.6
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-      debug: 4.3.4
-      globals: 11.12.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@eslint/core@0.6.0':
+    resolution: {integrity: sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@babel/types/7.20.2:
-    resolution: {integrity: sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==}
-    engines: {node: '>=6.9.0'}
-    dependencies:
-      '@babel/helper-string-parser': 7.19.4
-      '@babel/helper-validator-identifier': 7.19.1
-      to-fast-properties: 2.0.0
-    dev: true
+  '@eslint/eslintrc@3.1.0':
+    resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@bcoe/v8-coverage/0.2.3:
-    resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
-    dev: true
+  '@eslint/js@9.12.0':
+    resolution: {integrity: sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@cspotcode/source-map-support/0.8.1:
-    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
-    engines: {node: '>=12'}
-    dependencies:
-      '@jridgewell/trace-mapping': 0.3.9
-    dev: true
+  '@eslint/object-schema@2.1.4':
+    resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@eslint/eslintrc/1.3.3:
-    resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      ajv: 6.12.6
-      debug: 4.3.4
-      espree: 9.4.1
-      globals: 13.17.0
-      ignore: 5.2.0
-      import-fresh: 3.3.0
-      js-yaml: 4.1.0
-      minimatch: 3.1.2
-      strip-json-comments: 3.1.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@eslint/plugin-kit@0.2.0':
+    resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@humanwhocodes/config-array/0.11.7:
-    resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==}
-    engines: {node: '>=10.10.0'}
-    dependencies:
-      '@humanwhocodes/object-schema': 1.2.1
-      debug: 4.3.4
-      minimatch: 3.1.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@humanfs/core@0.19.0':
+    resolution: {integrity: sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==}
+    engines: {node: '>=18.18.0'}
 
-  /@humanwhocodes/module-importer/1.0.1:
+  '@humanfs/node@0.16.5':
+    resolution: {integrity: sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==}
+    engines: {node: '>=18.18.0'}
+
+  '@humanwhocodes/module-importer@1.0.1':
     resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
     engines: {node: '>=12.22'}
-    dev: true
 
-  /@humanwhocodes/object-schema/1.2.1:
-    resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
-    dev: true
+  '@humanwhocodes/retry@0.3.1':
+    resolution: {integrity: sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==}
+    engines: {node: '>=18.18'}
 
-  /@hutson/parse-repository-url/3.0.2:
+  '@hutson/parse-repository-url@3.0.2':
     resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==}
     engines: {node: '>=6.9.0'}
-    dev: true
 
-  /@istanbuljs/load-nyc-config/1.1.0:
-    resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==}
-    engines: {node: '>=8'}
-    dependencies:
-      camelcase: 5.3.1
-      find-up: 4.1.0
-      get-package-type: 0.1.0
-      js-yaml: 3.14.1
-      resolve-from: 5.0.0
-    dev: true
+  '@isaacs/cliui@8.0.2':
+    resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+    engines: {node: '>=12'}
 
-  /@istanbuljs/schema/0.1.3:
+  '@istanbuljs/schema@0.1.3':
     resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
     engines: {node: '>=8'}
-    dev: true
-
-  /@jest/console/29.3.1:
-    resolution: {integrity: sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-      slash: 3.0.0
-    dev: true
-
-  /@jest/core/29.3.1_ts-node@10.9.1:
-    resolution: {integrity: sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
-    dependencies:
-      '@jest/console': 29.3.1
-      '@jest/reporters': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      ansi-escapes: 4.3.2
-      chalk: 4.1.2
-      ci-info: 3.6.1
-      exit: 0.1.2
-      graceful-fs: 4.2.10
-      jest-changed-files: 29.2.0
-      jest-config: 29.3.1_qgsvtivhigskinhtkon55hue3i
-      jest-haste-map: 29.3.1
-      jest-message-util: 29.3.1
-      jest-regex-util: 29.2.0
-      jest-resolve: 29.3.1
-      jest-resolve-dependencies: 29.3.1
-      jest-runner: 29.3.1
-      jest-runtime: 29.3.1
-      jest-snapshot: 29.3.1
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      jest-watcher: 29.3.1
-      micromatch: 4.0.5
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      strip-ansi: 6.0.1
-    transitivePeerDependencies:
-      - supports-color
-      - ts-node
-    dev: true
-
-  /@jest/environment/29.3.1:
-    resolution: {integrity: sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/fake-timers': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      jest-mock: 29.3.1
-    dev: true
-
-  /@jest/expect-utils/29.3.1:
-    resolution: {integrity: sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      jest-get-type: 29.2.0
-    dev: true
-
-  /@jest/expect/29.3.1:
-    resolution: {integrity: sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      expect: 29.3.1
-      jest-snapshot: 29.3.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /@jest/fake-timers/29.3.1:
-    resolution: {integrity: sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/types': 29.3.1
-      '@sinonjs/fake-timers': 9.1.2
-      '@types/node': 16.0.0
-      jest-message-util: 29.3.1
-      jest-mock: 29.3.1
-      jest-util: 29.3.1
-    dev: true
-
-  /@jest/globals/29.3.1:
-    resolution: {integrity: sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/expect': 29.3.1
-      '@jest/types': 29.3.1
-      jest-mock: 29.3.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /@jest/reporters/29.3.1:
-    resolution: {integrity: sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
-    dependencies:
-      '@bcoe/v8-coverage': 0.2.3
-      '@jest/console': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@jridgewell/trace-mapping': 0.3.17
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      collect-v8-coverage: 1.0.1
-      exit: 0.1.2
-      glob: 7.2.3
-      graceful-fs: 4.2.10
-      istanbul-lib-coverage: 3.2.0
-      istanbul-lib-instrument: 5.2.1
-      istanbul-lib-report: 3.0.0
-      istanbul-lib-source-maps: 4.0.1
-      istanbul-reports: 3.1.5
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-      jest-worker: 29.3.1
-      slash: 3.0.0
-      string-length: 4.0.2
-      strip-ansi: 6.0.1
-      v8-to-istanbul: 9.0.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /@jest/schemas/29.0.0:
-    resolution: {integrity: sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@sinclair/typebox': 0.24.51
-    dev: true
-
-  /@jest/source-map/29.2.0:
-    resolution: {integrity: sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jridgewell/trace-mapping': 0.3.17
-      callsites: 3.1.0
-      graceful-fs: 4.2.10
-    dev: true
-
-  /@jest/test-result/29.3.1:
-    resolution: {integrity: sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/console': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/istanbul-lib-coverage': 2.0.4
-      collect-v8-coverage: 1.0.1
-    dev: true
 
-  /@jest/test-sequencer/29.3.1:
-    resolution: {integrity: sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==}
+  '@jest/expect-utils@29.7.0':
+    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/test-result': 29.3.1
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      slash: 3.0.0
-    dev: true
 
-  /@jest/transform/29.3.1:
-    resolution: {integrity: sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==}
+  '@jest/schemas@29.6.3':
+    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/core': 7.20.2
-      '@jest/types': 29.3.1
-      '@jridgewell/trace-mapping': 0.3.17
-      babel-plugin-istanbul: 6.1.1
-      chalk: 4.1.2
-      convert-source-map: 2.0.0
-      fast-json-stable-stringify: 2.1.0
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      jest-regex-util: 29.2.0
-      jest-util: 29.3.1
-      micromatch: 4.0.5
-      pirates: 4.0.5
-      slash: 3.0.0
-      write-file-atomic: 4.0.2
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@jest/types/29.3.1:
-    resolution: {integrity: sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==}
+  '@jest/types@29.6.3':
+    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/schemas': 29.0.0
-      '@types/istanbul-lib-coverage': 2.0.4
-      '@types/istanbul-reports': 3.0.1
-      '@types/node': 16.0.0
-      '@types/yargs': 17.0.13
-      chalk: 4.1.2
-    dev: true
-
-  /@jridgewell/gen-mapping/0.1.1:
-    resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
-    engines: {node: '>=6.0.0'}
-    dependencies:
-      '@jridgewell/set-array': 1.1.2
-      '@jridgewell/sourcemap-codec': 1.4.14
-    dev: true
 
-  /@jridgewell/gen-mapping/0.3.2:
-    resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
+  '@jridgewell/gen-mapping@0.3.5':
+    resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
     engines: {node: '>=6.0.0'}
-    dependencies:
-      '@jridgewell/set-array': 1.1.2
-      '@jridgewell/sourcemap-codec': 1.4.14
-      '@jridgewell/trace-mapping': 0.3.17
-    dev: true
 
-  /@jridgewell/resolve-uri/3.1.0:
-    resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+  '@jridgewell/resolve-uri@3.1.2':
+    resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
     engines: {node: '>=6.0.0'}
-    dev: true
 
-  /@jridgewell/set-array/1.1.2:
-    resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+  '@jridgewell/set-array@1.2.1':
+    resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
     engines: {node: '>=6.0.0'}
-    dev: true
 
-  /@jridgewell/source-map/0.3.2:
-    resolution: {integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==}
-    dependencies:
-      '@jridgewell/gen-mapping': 0.3.2
-      '@jridgewell/trace-mapping': 0.3.17
-    dev: true
+  '@jridgewell/source-map@0.3.6':
+    resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==}
 
-  /@jridgewell/sourcemap-codec/1.4.14:
-    resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
-    dev: true
+  '@jridgewell/sourcemap-codec@1.5.0':
+    resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
 
-  /@jridgewell/trace-mapping/0.3.17:
-    resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
-    dependencies:
-      '@jridgewell/resolve-uri': 3.1.0
-      '@jridgewell/sourcemap-codec': 1.4.14
-    dev: true
+  '@jridgewell/trace-mapping@0.3.25':
+    resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
 
-  /@jridgewell/trace-mapping/0.3.9:
+  '@jridgewell/trace-mapping@0.3.9':
     resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
-    dependencies:
-      '@jridgewell/resolve-uri': 3.1.0
-      '@jridgewell/sourcemap-codec': 1.4.14
-    dev: true
 
-  /@nodelib/fs.scandir/2.1.5:
+  '@nodelib/fs.scandir@2.1.5':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     engines: {node: '>= 8'}
-    dependencies:
-      '@nodelib/fs.stat': 2.0.5
-      run-parallel: 1.2.0
-    dev: true
 
-  /@nodelib/fs.stat/2.0.5:
+  '@nodelib/fs.stat@2.0.5':
     resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
     engines: {node: '>= 8'}
-    dev: true
 
-  /@nodelib/fs.walk/1.2.8:
+  '@nodelib/fs.walk@1.2.8':
     resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
     engines: {node: '>= 8'}
-    dependencies:
-      '@nodelib/fs.scandir': 2.1.5
-      fastq: 1.13.0
-    dev: true
 
-  /@rollup/plugin-commonjs/23.0.2_rollup@3.3.0:
-    resolution: {integrity: sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==}
-    engines: {node: '>=14.0.0'}
+  '@pkgjs/parseargs@0.11.0':
+    resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+    engines: {node: '>=14'}
+
+  '@pkgr/core@0.1.1':
+    resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
+    engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+
+  '@rollup/plugin-commonjs@28.0.0':
+    resolution: {integrity: sha512-BJcu+a+Mpq476DMXG+hevgPSl56bkUoi88dKT8t3RyUp8kGuOh+2bU8Gs7zXDlu+fyZggnJ+iOBGrb/O1SorYg==}
+    engines: {node: '>=16.0.0 || 14 >= 14.17'}
     peerDependencies:
-      rollup: ^2.68.0||^3.0.0
+      rollup: ^2.68.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.3.0
-      commondir: 1.0.1
-      estree-walker: 2.0.2
-      glob: 8.0.3
-      is-reference: 1.2.1
-      magic-string: 0.26.7
-      rollup: 3.3.0
-    dev: true
 
-  /@rollup/plugin-node-resolve/15.0.1_rollup@3.3.0:
-    resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==}
+  '@rollup/plugin-node-resolve@15.3.0':
+    resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      rollup: ^2.78.0||^3.0.0
+      rollup: ^2.78.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.3.0
-      '@types/resolve': 1.20.2
-      deepmerge: 4.2.2
-      is-builtin-module: 3.2.0
-      is-module: 1.0.0
-      resolve: 1.22.1
-      rollup: 3.3.0
-    dev: true
 
-  /@rollup/plugin-typescript/9.0.2_uxzoppybjjm3iv3alceonunahm:
-    resolution: {integrity: sha512-/sS93vmHUMjzDUsl5scNQr1mUlNE1QjBBvOhmRwJCH8k2RRhDIm3c977B3wdu3t3Ap17W6dDeXP3hj1P1Un1bA==}
+  '@rollup/plugin-typescript@12.1.0':
+    resolution: {integrity: sha512-Kzs8KGJofe7cfTRODsnG1jNGxSvU8gVoNNd7Z/QaY25AYwe2LSSUpx/kPxqF38NYkpR8de3m51r9uwJpDlz6dg==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      rollup: ^2.14.0||^3.0.0
+      rollup: ^2.14.0||^3.0.0||^4.0.0
       tslib: '*'
       typescript: '>=3.7.0'
     peerDependenciesMeta:
@@ -790,2307 +402,3336 @@ packages:
         optional: true
       tslib:
         optional: true
-    dependencies:
-      '@rollup/pluginutils': 5.0.2_rollup@3.3.0
-      resolve: 1.22.1
-      rollup: 3.3.0
-      tslib: 2.4.1
-      typescript: 4.8.4
-    dev: true
 
-  /@rollup/pluginutils/5.0.2_rollup@3.3.0:
-    resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
+  '@rollup/pluginutils@5.1.2':
+    resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      rollup: ^1.20.0||^2.0.0||^3.0.0
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-    dependencies:
-      '@types/estree': 1.0.0
-      estree-walker: 2.0.2
-      picomatch: 2.3.1
-      rollup: 3.3.0
-    dev: true
 
-  /@sinclair/typebox/0.24.51:
-    resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==}
-    dev: true
+  '@rollup/rollup-android-arm-eabi@4.24.0':
+    resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==}
+    cpu: [arm]
+    os: [android]
 
-  /@sinonjs/commons/1.8.5:
-    resolution: {integrity: sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==}
-    dependencies:
-      type-detect: 4.0.8
-    dev: true
+  '@rollup/rollup-android-arm64@4.24.0':
+    resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==}
+    cpu: [arm64]
+    os: [android]
 
-  /@sinonjs/fake-timers/9.1.2:
-    resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==}
-    dependencies:
-      '@sinonjs/commons': 1.8.5
-    dev: true
+  '@rollup/rollup-darwin-arm64@4.24.0':
+    resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==}
+    cpu: [arm64]
+    os: [darwin]
 
-  /@tsconfig/node10/1.0.9:
-    resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
-    dev: true
+  '@rollup/rollup-darwin-x64@4.24.0':
+    resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==}
+    cpu: [x64]
+    os: [darwin]
 
-  /@tsconfig/node12/1.0.11:
-    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
-    dev: true
+  '@rollup/rollup-linux-arm-gnueabihf@4.24.0':
+    resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==}
+    cpu: [arm]
+    os: [linux]
 
-  /@tsconfig/node14/1.0.3:
-    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
-    dev: true
+  '@rollup/rollup-linux-arm-musleabihf@4.24.0':
+    resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==}
+    cpu: [arm]
+    os: [linux]
 
-  /@tsconfig/node16/1.0.3:
-    resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==}
-    dev: true
+  '@rollup/rollup-linux-arm64-gnu@4.24.0':
+    resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==}
+    cpu: [arm64]
+    os: [linux]
 
-  /@types/babel__core/7.1.20:
-    resolution: {integrity: sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==}
-    dependencies:
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-      '@types/babel__generator': 7.6.4
-      '@types/babel__template': 7.4.1
-      '@types/babel__traverse': 7.18.2
-    dev: true
+  '@rollup/rollup-linux-arm64-musl@4.24.0':
+    resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==}
+    cpu: [arm64]
+    os: [linux]
 
-  /@types/babel__generator/7.6.4:
-    resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@rollup/rollup-linux-powerpc64le-gnu@4.24.0':
+    resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==}
+    cpu: [ppc64]
+    os: [linux]
 
-  /@types/babel__template/7.4.1:
-    resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
-    dependencies:
-      '@babel/parser': 7.20.3
-      '@babel/types': 7.20.2
-    dev: true
+  '@rollup/rollup-linux-riscv64-gnu@4.24.0':
+    resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==}
+    cpu: [riscv64]
+    os: [linux]
 
-  /@types/babel__traverse/7.18.2:
-    resolution: {integrity: sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==}
-    dependencies:
-      '@babel/types': 7.20.2
-    dev: true
+  '@rollup/rollup-linux-s390x-gnu@4.24.0':
+    resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==}
+    cpu: [s390x]
+    os: [linux]
 
-  /@types/estree/1.0.0:
-    resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
-    dev: true
+  '@rollup/rollup-linux-x64-gnu@4.24.0':
+    resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==}
+    cpu: [x64]
+    os: [linux]
 
-  /@types/graceful-fs/4.1.5:
-    resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==}
-    dependencies:
-      '@types/node': 16.0.0
-    dev: true
+  '@rollup/rollup-linux-x64-musl@4.24.0':
+    resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==}
+    cpu: [x64]
+    os: [linux]
 
-  /@types/istanbul-lib-coverage/2.0.4:
-    resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
-    dev: true
+  '@rollup/rollup-win32-arm64-msvc@4.24.0':
+    resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==}
+    cpu: [arm64]
+    os: [win32]
 
-  /@types/istanbul-lib-report/3.0.0:
-    resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
-    dependencies:
-      '@types/istanbul-lib-coverage': 2.0.4
-    dev: true
+  '@rollup/rollup-win32-ia32-msvc@4.24.0':
+    resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==}
+    cpu: [ia32]
+    os: [win32]
 
-  /@types/istanbul-reports/3.0.1:
-    resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
-    dependencies:
-      '@types/istanbul-lib-report': 3.0.0
-    dev: true
+  '@rollup/rollup-win32-x64-msvc@4.24.0':
+    resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==}
+    cpu: [x64]
+    os: [win32]
 
-  /@types/jest/29.2.2:
-    resolution: {integrity: sha512-og1wAmdxKoS71K2ZwSVqWPX6OVn3ihZ6ZT2qvZvZQm90lJVDyXIjYcu4Khx2CNIeaFv12rOU/YObOsI3VOkzog==}
-    dependencies:
-      expect: 29.3.1
-      pretty-format: 29.3.1
-    dev: true
+  '@shikijs/core@1.21.1':
+    resolution: {integrity: sha512-scBQo4V4O4WZLEDg11e75UPmXoCMq4Ya2A16U6efi/aTiR4o7T/GMNWZs2rq1U8dEvFKGxJZxiUy+tXgmr/4vw==}
 
-  /@types/json-schema/7.0.11:
-    resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
-    dev: true
+  '@shikijs/engine-javascript@1.21.1':
+    resolution: {integrity: sha512-29EG4KYKlAona8yikEx8uoKbK7N2YoXUO26LS1GOIxpMMIAlQS9UFONg95lkGmIfp1rRcvCvSpYYIJ/blsQxvg==}
 
-  /@types/minimist/1.2.2:
-    resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==}
-    dev: true
+  '@shikijs/engine-oniguruma@1.21.1':
+    resolution: {integrity: sha512-PvfEtXCDbQZc9ud0SC0bPiuMbul44Cv0Ky2go4SsvVkYAAKYJsMe/Hx7nxThW8yS0r+w8USa0WfOtQKsD9DU9A==}
 
-  /@types/node/16.0.0:
-    resolution: {integrity: sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==}
-    dev: true
+  '@shikijs/types@1.21.1':
+    resolution: {integrity: sha512-yLuTJTCHmYznerJ0nxF+f2rBKHQf2FMAd08QL/3du2xNBy/7yQ8CjuKN4Zc+Pk0vfIFzdBoxdzvEXE4JtXoR4Q==}
 
-  /@types/normalize-package-data/2.4.1:
-    resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
-    dev: true
+  '@shikijs/vscode-textmate@9.3.0':
+    resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==}
 
-  /@types/prettier/2.7.1:
-    resolution: {integrity: sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==}
-    dev: true
+  '@sinclair/typebox@0.27.8':
+    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
 
-  /@types/resolve/1.20.2:
-    resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
-    dev: true
+  '@tsconfig/node10@1.0.11':
+    resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
 
-  /@types/semver/7.3.13:
-    resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
-    dev: true
+  '@tsconfig/node12@1.0.11':
+    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
 
-  /@types/stack-utils/2.0.1:
-    resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
-    dev: true
+  '@tsconfig/node14@1.0.3':
+    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
 
-  /@types/yargs-parser/21.0.0:
-    resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
-    dev: true
+  '@tsconfig/node16@1.0.4':
+    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
 
-  /@types/yargs/17.0.13:
-    resolution: {integrity: sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==}
-    dependencies:
-      '@types/yargs-parser': 21.0.0
-    dev: true
+  '@types/estree@1.0.6':
+    resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
 
-  /@typescript-eslint/eslint-plugin/5.42.1_2udltptbznfmezdozpdoa2aemq:
-    resolution: {integrity: sha512-LyR6x784JCiJ1j6sH5Y0K6cdExqCCm8DJUTcwG5ThNXJj/G8o5E56u5EdG4SLy+bZAwZBswC+GYn3eGdttBVCg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    peerDependencies:
-      '@typescript-eslint/parser': ^5.0.0
-      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
-      typescript: '*'
-    peerDependenciesMeta:
-      typescript:
-        optional: true
-    dependencies:
-      '@typescript-eslint/parser': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      '@typescript-eslint/scope-manager': 5.42.1
-      '@typescript-eslint/type-utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      debug: 4.3.4
-      eslint: 8.27.0
-      ignore: 5.2.0
-      natural-compare-lite: 1.4.0
-      regexpp: 3.2.0
-      semver: 7.3.8
-      tsutils: 3.21.0_typescript@4.8.4
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+  '@types/hast@3.0.4':
+    resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
 
-  /@typescript-eslint/parser/5.42.1_rmayb2veg2btbq6mbmnyivgasy:
-    resolution: {integrity: sha512-kAV+NiNBWVQDY9gDJDToTE/NO8BHi4f6b7zTsVAJoTkmB/zlfOpiEVBzHOKtlgTndCKe8vj9F/PuolemZSh50Q==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@types/istanbul-lib-coverage@2.0.6':
+    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
+
+  '@types/istanbul-lib-report@3.0.3':
+    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
+
+  '@types/istanbul-reports@3.0.4':
+    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
+
+  '@types/jest@29.5.13':
+    resolution: {integrity: sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==}
+
+  '@types/json-schema@7.0.15':
+    resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+  '@types/mdast@4.0.4':
+    resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==}
+
+  '@types/minimist@1.2.5':
+    resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
+
+  '@types/node@22.7.4':
+    resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==}
+
+  '@types/normalize-package-data@2.4.4':
+    resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
+  '@types/resolve@1.20.2':
+    resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+
+  '@types/stack-utils@2.0.3':
+    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
+
+  '@types/unist@3.0.3':
+    resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
+
+  '@types/yargs-parser@21.0.3':
+    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
+
+  '@types/yargs@17.0.33':
+    resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
+
+  '@typescript-eslint/eslint-plugin@8.8.0':
+    resolution: {integrity: sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+      '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
+      eslint: ^8.57.0 || ^9.0.0
       typescript: '*'
     peerDependenciesMeta:
       typescript:
         optional: true
-    dependencies:
-      '@typescript-eslint/scope-manager': 5.42.1
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
-      debug: 4.3.4
-      eslint: 8.27.0
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@typescript-eslint/scope-manager/5.42.1:
-    resolution: {integrity: sha512-QAZY/CBP1Emx4rzxurgqj3rUinfsh/6mvuKbLNMfJMMKYLRBfweus8brgXF8f64ABkIZ3zdj2/rYYtF8eiuksQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/visitor-keys': 5.42.1
-    dev: true
+  '@typescript-eslint/parser@8.8.0':
+    resolution: {integrity: sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: ^8.57.0 || ^9.0.0
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
 
-  /@typescript-eslint/type-utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy:
-    resolution: {integrity: sha512-WWiMChneex5w4xPIX56SSnQQo0tEOy5ZV2dqmj8Z371LJ0E+aymWD25JQ/l4FOuuX+Q49A7pzh/CGIQflxMVXg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@typescript-eslint/scope-manager@8.8.0':
+    resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@typescript-eslint/type-utils@8.8.0':
+    resolution: {integrity: sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      eslint: '*'
       typescript: '*'
     peerDependenciesMeta:
       typescript:
         optional: true
-    dependencies:
-      '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
-      '@typescript-eslint/utils': 5.42.1_rmayb2veg2btbq6mbmnyivgasy
-      debug: 4.3.4
-      eslint: 8.27.0
-      tsutils: 3.21.0_typescript@4.8.4
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@typescript-eslint/types/5.42.1:
-    resolution: {integrity: sha512-Qrco9dsFF5lhalz+lLFtxs3ui1/YfC6NdXu+RAGBa8uSfn01cjO7ssCsjIsUs484vny9Xm699FSKwpkCcqwWwA==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: true
+  '@typescript-eslint/types@8.8.0':
+    resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /@typescript-eslint/typescript-estree/5.42.1_typescript@4.8.4:
-    resolution: {integrity: sha512-qElc0bDOuO0B8wDhhW4mYVgi/LZL+igPwXtV87n69/kYC/7NG3MES0jHxJNCr4EP7kY1XVsRy8C/u3DYeTKQmw==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@typescript-eslint/typescript-estree@8.8.0':
+    resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       typescript: '*'
     peerDependenciesMeta:
       typescript:
         optional: true
-    dependencies:
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/visitor-keys': 5.42.1
-      debug: 4.3.4
-      globby: 11.1.0
-      is-glob: 4.0.3
-      semver: 7.3.8
-      tsutils: 3.21.0_typescript@4.8.4
-      typescript: 4.8.4
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /@typescript-eslint/utils/5.42.1_rmayb2veg2btbq6mbmnyivgasy:
-    resolution: {integrity: sha512-Gxvf12xSp3iYZd/fLqiQRD4uKZjDNR01bQ+j8zvhPjpsZ4HmvEFL/tC4amGNyxN9Rq+iqvpHLhlqx6KTxz9ZyQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  '@typescript-eslint/utils@8.8.0':
+    resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
-      eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
-    dependencies:
-      '@types/json-schema': 7.0.11
-      '@types/semver': 7.3.13
-      '@typescript-eslint/scope-manager': 5.42.1
-      '@typescript-eslint/types': 5.42.1
-      '@typescript-eslint/typescript-estree': 5.42.1_typescript@4.8.4
-      eslint: 8.27.0
-      eslint-scope: 5.1.1
-      eslint-utils: 3.0.0_eslint@8.27.0
-      semver: 7.3.8
-    transitivePeerDependencies:
-      - supports-color
-      - typescript
-    dev: true
+      eslint: ^8.57.0 || ^9.0.0
 
-  /@typescript-eslint/visitor-keys/5.42.1:
-    resolution: {integrity: sha512-LOQtSF4z+hejmpUvitPlc4hA7ERGoj2BVkesOcG91HCn8edLGUXbTrErmutmPbl8Bo9HjAvOO/zBKQHExXNA2A==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      '@typescript-eslint/types': 5.42.1
-      eslint-visitor-keys: 3.3.0
-    dev: true
+  '@typescript-eslint/visitor-keys@8.8.0':
+    resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@ungap/structured-clone@1.2.0':
+    resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
+
+  '@vitest/coverage-v8@2.1.2':
+    resolution: {integrity: sha512-b7kHrFrs2urS0cOk5N10lttI8UdJ/yP3nB4JYTREvR5o18cR99yPpK4gK8oQgI42BVv0ILWYUSYB7AXkAUDc0g==}
+    peerDependencies:
+      '@vitest/browser': 2.1.2
+      vitest: 2.1.2
+    peerDependenciesMeta:
+      '@vitest/browser':
+        optional: true
+
+  '@vitest/expect@2.1.2':
+    resolution: {integrity: sha512-FEgtlN8mIUSEAAnlvn7mP8vzaWhEaAEvhSXCqrsijM7K6QqjB11qoRZYEd4AKSCDz8p0/+yH5LzhZ47qt+EyPg==}
+
+  '@vitest/mocker@2.1.2':
+    resolution: {integrity: sha512-ExElkCGMS13JAJy+812fw1aCv2QO/LBK6CyO4WOPAzLTmve50gydOlWhgdBJPx2ztbADUq3JVI0C5U+bShaeEA==}
+    peerDependencies:
+      '@vitest/spy': 2.1.2
+      msw: ^2.3.5
+      vite: ^5.0.0
+    peerDependenciesMeta:
+      msw:
+        optional: true
+      vite:
+        optional: true
+
+  '@vitest/pretty-format@2.1.2':
+    resolution: {integrity: sha512-FIoglbHrSUlOJPDGIrh2bjX1sNars5HbxlcsFKCtKzu4+5lpsRhOCVcuzp0fEhAGHkPZRIXVNzPcpSlkoZ3LuA==}
+
+  '@vitest/runner@2.1.2':
+    resolution: {integrity: sha512-UCsPtvluHO3u7jdoONGjOSil+uON5SSvU9buQh3lP7GgUXHp78guN1wRmZDX4wGK6J10f9NUtP6pO+SFquoMlw==}
+
+  '@vitest/snapshot@2.1.2':
+    resolution: {integrity: sha512-xtAeNsZ++aRIYIUsek7VHzry/9AcxeULlegBvsdLncLmNCR6tR8SRjn8BbDP4naxtccvzTqZ+L1ltZlRCfBZFA==}
 
-  /JSONStream/1.3.5:
+  '@vitest/spy@2.1.2':
+    resolution: {integrity: sha512-GSUi5zoy+abNRJwmFhBDC0yRuVUn8WMlQscvnbbXdKLXX9dE59YbfwXxuJ/mth6eeqIzofU8BB5XDo/Ns/qK2A==}
+
+  '@vitest/utils@2.1.2':
+    resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==}
+
+  JSONStream@1.3.5:
     resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
     hasBin: true
-    dependencies:
-      jsonparse: 1.3.1
-      through: 2.3.8
-    dev: true
 
-  /acorn-jsx/5.3.2_acorn@8.8.1:
+  acorn-jsx@5.3.2:
     resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
     peerDependencies:
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
-    dependencies:
-      acorn: 8.8.1
-    dev: true
 
-  /acorn-walk/8.2.0:
-    resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
+  acorn-walk@8.3.4:
+    resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
     engines: {node: '>=0.4.0'}
-    dev: true
 
-  /acorn/8.8.1:
-    resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==}
+  acorn@8.12.1:
+    resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
     engines: {node: '>=0.4.0'}
     hasBin: true
-    dev: true
 
-  /add-stream/1.0.0:
+  add-stream@1.0.0:
     resolution: {integrity: sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==}
-    dev: true
 
-  /ajv/6.12.6:
+  ajv@6.12.6:
     resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
-    dependencies:
-      fast-deep-equal: 3.1.3
-      fast-json-stable-stringify: 2.1.0
-      json-schema-traverse: 0.4.1
-      uri-js: 4.4.1
-    dev: true
-
-  /ansi-escapes/4.3.2:
-    resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
-    engines: {node: '>=8'}
-    dependencies:
-      type-fest: 0.21.3
-    dev: true
 
-  /ansi-regex/5.0.1:
+  ansi-regex@5.0.1:
     resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
     engines: {node: '>=8'}
-    dev: true
 
-  /ansi-styles/3.2.1:
+  ansi-regex@6.1.0:
+    resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
+    engines: {node: '>=12'}
+
+  ansi-styles@3.2.1:
     resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
     engines: {node: '>=4'}
-    dependencies:
-      color-convert: 1.9.3
-    dev: true
 
-  /ansi-styles/4.3.0:
+  ansi-styles@4.3.0:
     resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
     engines: {node: '>=8'}
-    dependencies:
-      color-convert: 2.0.1
-    dev: true
 
-  /ansi-styles/5.2.0:
+  ansi-styles@5.2.0:
     resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
     engines: {node: '>=10'}
-    dev: true
 
-  /anymatch/3.1.2:
-    resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
-    engines: {node: '>= 8'}
-    dependencies:
-      normalize-path: 3.0.0
-      picomatch: 2.3.1
-    dev: true
+  ansi-styles@6.2.1:
+    resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+    engines: {node: '>=12'}
 
-  /arg/4.1.3:
+  arg@4.1.3:
     resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
-    dev: true
 
-  /argparse/1.0.10:
-    resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
-    dependencies:
-      sprintf-js: 1.0.3
-    dev: true
-
-  /argparse/2.0.1:
+  argparse@2.0.1:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
-    dev: true
 
-  /array-ify/1.0.0:
+  array-ify@1.0.0:
     resolution: {integrity: sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==}
-    dev: true
-
-  /array-union/2.1.0:
-    resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
-    engines: {node: '>=8'}
-    dev: true
 
-  /arrify/1.0.1:
+  arrify@1.0.1:
     resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
     engines: {node: '>=0.10.0'}
-    dev: true
-
-  /babel-jest/29.3.1_@babel+core@7.20.2:
-    resolution: {integrity: sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@babel/core': ^7.8.0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@jest/transform': 29.3.1
-      '@types/babel__core': 7.1.20
-      babel-plugin-istanbul: 6.1.1
-      babel-preset-jest: 29.2.0_@babel+core@7.20.2
-      chalk: 4.1.2
-      graceful-fs: 4.2.10
-      slash: 3.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /babel-plugin-istanbul/6.1.1:
-    resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==}
-    engines: {node: '>=8'}
-    dependencies:
-      '@babel/helper-plugin-utils': 7.20.2
-      '@istanbuljs/load-nyc-config': 1.1.0
-      '@istanbuljs/schema': 0.1.3
-      istanbul-lib-instrument: 5.2.1
-      test-exclude: 6.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /babel-plugin-jest-hoist/29.2.0:
-    resolution: {integrity: sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@babel/template': 7.18.10
-      '@babel/types': 7.20.2
-      '@types/babel__core': 7.1.20
-      '@types/babel__traverse': 7.18.2
-    dev: true
-
-  /babel-preset-current-node-syntax/1.0.1_@babel+core@7.20.2:
-    resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-bigint': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-class-properties': 7.12.13_@babel+core@7.20.2
-      '@babel/plugin-syntax-import-meta': 7.10.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.20.2
-      '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.20.2
-      '@babel/plugin-syntax-top-level-await': 7.14.5_@babel+core@7.20.2
-    dev: true
-
-  /babel-preset-jest/29.2.0_@babel+core@7.20.2:
-    resolution: {integrity: sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@babel/core': ^7.0.0
-    dependencies:
-      '@babel/core': 7.20.2
-      babel-plugin-jest-hoist: 29.2.0
-      babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2
-    dev: true
+  assertion-error@2.0.1:
+    resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
+    engines: {node: '>=12'}
 
-  /balanced-match/1.0.2:
+  balanced-match@1.0.2:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
-    dev: true
 
-  /brace-expansion/1.1.11:
+  brace-expansion@1.1.11:
     resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
-    dependencies:
-      balanced-match: 1.0.2
-      concat-map: 0.0.1
-    dev: true
 
-  /brace-expansion/2.0.1:
+  brace-expansion@2.0.1:
     resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
-    dependencies:
-      balanced-match: 1.0.2
-    dev: true
 
-  /braces/3.0.2:
-    resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+  braces@3.0.3:
+    resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
     engines: {node: '>=8'}
-    dependencies:
-      fill-range: 7.0.1
-    dev: true
-
-  /browserslist/4.21.4:
-    resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
-    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
-    hasBin: true
-    dependencies:
-      caniuse-lite: 1.0.30001431
-      electron-to-chromium: 1.4.284
-      node-releases: 2.0.6
-      update-browserslist-db: 1.0.10_browserslist@4.21.4
-    dev: true
-
-  /bs-logger/0.2.6:
-    resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
-    engines: {node: '>= 6'}
-    dependencies:
-      fast-json-stable-stringify: 2.1.0
-    dev: true
-
-  /bser/2.1.1:
-    resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==}
-    dependencies:
-      node-int64: 0.4.0
-    dev: true
 
-  /buffer-from/1.1.2:
+  buffer-from@1.1.2:
     resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
-    dev: true
 
-  /builtin-modules/3.3.0:
-    resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
-    engines: {node: '>=6'}
-    dev: true
+  cac@6.7.14:
+    resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+    engines: {node: '>=8'}
 
-  /callsites/3.1.0:
+  callsites@3.1.0:
     resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
     engines: {node: '>=6'}
-    dev: true
 
-  /camelcase-keys/6.2.2:
+  camelcase-keys@6.2.2:
     resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
     engines: {node: '>=8'}
-    dependencies:
-      camelcase: 5.3.1
-      map-obj: 4.3.0
-      quick-lru: 4.0.1
-    dev: true
 
-  /camelcase/5.3.1:
+  camelcase@5.3.1:
     resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
     engines: {node: '>=6'}
-    dev: true
 
-  /camelcase/6.3.0:
-    resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
-    engines: {node: '>=10'}
-    dev: true
+  ccount@2.0.1:
+    resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
 
-  /caniuse-lite/1.0.30001431:
-    resolution: {integrity: sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==}
-    dev: true
+  chai@5.1.1:
+    resolution: {integrity: sha512-pT1ZgP8rPNqUgieVaEY+ryQr6Q4HXNg8Ei9UnLUrjN4IA7dvQC5JB+/kxVcPNDHyBcc/26CXPkbNzq3qwrOEKA==}
+    engines: {node: '>=12'}
 
-  /chalk/2.4.2:
+  chalk@2.4.2:
     resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
     engines: {node: '>=4'}
-    dependencies:
-      ansi-styles: 3.2.1
-      escape-string-regexp: 1.0.5
-      supports-color: 5.5.0
-    dev: true
 
-  /chalk/4.1.2:
+  chalk@4.1.2:
     resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
     engines: {node: '>=10'}
-    dependencies:
-      ansi-styles: 4.3.0
-      supports-color: 7.2.0
-    dev: true
-
-  /char-regex/1.0.2:
-    resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
-    engines: {node: '>=10'}
-    dev: true
-
-  /ci-info/3.6.1:
-    resolution: {integrity: sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==}
-    engines: {node: '>=8'}
-    dev: true
 
-  /cjs-module-lexer/1.2.2:
-    resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==}
-    dev: true
+  character-entities-html4@2.1.0:
+    resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
 
-  /cliui/7.0.4:
-    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
-    dependencies:
-      string-width: 4.2.3
-      strip-ansi: 6.0.1
-      wrap-ansi: 7.0.0
-    dev: true
+  character-entities-legacy@3.0.0:
+    resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==}
 
-  /cliui/8.0.1:
-    resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
-    engines: {node: '>=12'}
-    dependencies:
-      string-width: 4.2.3
-      strip-ansi: 6.0.1
-      wrap-ansi: 7.0.0
-    dev: true
+  check-error@2.1.1:
+    resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
+    engines: {node: '>= 16'}
 
-  /co/4.6.0:
-    resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==}
-    engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
-    dev: true
+  ci-info@3.9.0:
+    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
+    engines: {node: '>=8'}
 
-  /collect-v8-coverage/1.0.1:
-    resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
-    dev: true
+  cliui@7.0.4:
+    resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
 
-  /color-convert/1.9.3:
+  color-convert@1.9.3:
     resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
-    dependencies:
-      color-name: 1.1.3
-    dev: true
 
-  /color-convert/2.0.1:
+  color-convert@2.0.1:
     resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
     engines: {node: '>=7.0.0'}
-    dependencies:
-      color-name: 1.1.4
-    dev: true
 
-  /color-name/1.1.3:
+  color-name@1.1.3:
     resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
-    dev: true
 
-  /color-name/1.1.4:
+  color-name@1.1.4:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
-    dev: true
 
-  /commander/2.20.3:
+  comma-separated-tokens@2.0.3:
+    resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
+
+  commander@2.20.3:
     resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
-    dev: true
 
-  /commondir/1.0.1:
+  commondir@1.0.1:
     resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
-    dev: true
 
-  /compare-func/2.0.0:
+  compare-func@2.0.0:
     resolution: {integrity: sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==}
-    dependencies:
-      array-ify: 1.0.0
-      dot-prop: 5.3.0
-    dev: true
 
-  /concat-map/0.0.1:
-    resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
-    dev: true
+  concat-map@0.0.1:
+    resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
 
-  /concat-stream/2.0.0:
+  concat-stream@2.0.0:
     resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
     engines: {'0': node >= 6.0}
-    dependencies:
-      buffer-from: 1.1.2
-      inherits: 2.0.4
-      readable-stream: 3.6.0
-      typedarray: 0.0.6
-    dev: true
 
-  /conventional-changelog-angular/5.0.13:
+  conventional-changelog-angular@5.0.13:
     resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
     engines: {node: '>=10'}
-    dependencies:
-      compare-func: 2.0.0
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-atom/2.0.8:
+  conventional-changelog-atom@2.0.8:
     resolution: {integrity: sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==}
     engines: {node: '>=10'}
-    dependencies:
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-codemirror/2.0.8:
+  conventional-changelog-codemirror@2.0.8:
     resolution: {integrity: sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==}
     engines: {node: '>=10'}
-    dependencies:
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-config-spec/2.1.0:
+  conventional-changelog-config-spec@2.1.0:
     resolution: {integrity: sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ==}
-    dev: true
 
-  /conventional-changelog-conventionalcommits/4.6.3:
+  conventional-changelog-conventionalcommits@4.6.3:
     resolution: {integrity: sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==}
     engines: {node: '>=10'}
-    dependencies:
-      compare-func: 2.0.0
-      lodash: 4.17.21
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-core/4.2.4:
+  conventional-changelog-core@4.2.4:
     resolution: {integrity: sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==}
     engines: {node: '>=10'}
-    dependencies:
-      add-stream: 1.0.0
-      conventional-changelog-writer: 5.0.1
-      conventional-commits-parser: 3.2.4
-      dateformat: 3.0.3
-      get-pkg-repo: 4.2.1
-      git-raw-commits: 2.0.11
-      git-remote-origin-url: 2.0.0
-      git-semver-tags: 4.1.1
-      lodash: 4.17.21
-      normalize-package-data: 3.0.3
-      q: 1.5.1
-      read-pkg: 3.0.0
-      read-pkg-up: 3.0.0
-      through2: 4.0.2
-    dev: true
 
-  /conventional-changelog-ember/2.0.9:
+  conventional-changelog-ember@2.0.9:
     resolution: {integrity: sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==}
     engines: {node: '>=10'}
-    dependencies:
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-eslint/3.0.9:
+  conventional-changelog-eslint@3.0.9:
     resolution: {integrity: sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==}
     engines: {node: '>=10'}
-    dependencies:
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-express/2.0.6:
+  conventional-changelog-express@2.0.6:
     resolution: {integrity: sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==}
     engines: {node: '>=10'}
-    dependencies:
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-jquery/3.0.11:
+  conventional-changelog-jquery@3.0.11:
     resolution: {integrity: sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==}
     engines: {node: '>=10'}
-    dependencies:
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-jshint/2.0.9:
+  conventional-changelog-jshint@2.0.9:
     resolution: {integrity: sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==}
     engines: {node: '>=10'}
-    dependencies:
-      compare-func: 2.0.0
-      q: 1.5.1
-    dev: true
 
-  /conventional-changelog-preset-loader/2.3.4:
+  conventional-changelog-preset-loader@2.3.4:
     resolution: {integrity: sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==}
     engines: {node: '>=10'}
-    dev: true
 
-  /conventional-changelog-writer/5.0.1:
+  conventional-changelog-writer@5.0.1:
     resolution: {integrity: sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==}
     engines: {node: '>=10'}
     hasBin: true
-    dependencies:
-      conventional-commits-filter: 2.0.7
-      dateformat: 3.0.3
-      handlebars: 4.7.7
-      json-stringify-safe: 5.0.1
-      lodash: 4.17.21
-      meow: 8.1.2
-      semver: 6.3.0
-      split: 1.0.1
-      through2: 4.0.2
-    dev: true
 
-  /conventional-changelog/3.1.25:
+  conventional-changelog@3.1.25:
     resolution: {integrity: sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==}
     engines: {node: '>=10'}
-    dependencies:
-      conventional-changelog-angular: 5.0.13
-      conventional-changelog-atom: 2.0.8
-      conventional-changelog-codemirror: 2.0.8
-      conventional-changelog-conventionalcommits: 4.6.3
-      conventional-changelog-core: 4.2.4
-      conventional-changelog-ember: 2.0.9
-      conventional-changelog-eslint: 3.0.9
-      conventional-changelog-express: 2.0.6
-      conventional-changelog-jquery: 3.0.11
-      conventional-changelog-jshint: 2.0.9
-      conventional-changelog-preset-loader: 2.3.4
-    dev: true
 
-  /conventional-commits-filter/2.0.7:
+  conventional-commits-filter@2.0.7:
     resolution: {integrity: sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==}
     engines: {node: '>=10'}
-    dependencies:
-      lodash.ismatch: 4.4.0
-      modify-values: 1.0.1
-    dev: true
 
-  /conventional-commits-parser/3.2.4:
+  conventional-commits-parser@3.2.4:
     resolution: {integrity: sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==}
     engines: {node: '>=10'}
     hasBin: true
-    dependencies:
-      JSONStream: 1.3.5
-      is-text-path: 1.0.1
-      lodash: 4.17.21
-      meow: 8.1.2
-      split2: 3.2.2
-      through2: 4.0.2
-    dev: true
 
-  /conventional-recommended-bump/6.1.0:
+  conventional-recommended-bump@6.1.0:
     resolution: {integrity: sha512-uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==}
     engines: {node: '>=10'}
     hasBin: true
-    dependencies:
-      concat-stream: 2.0.0
-      conventional-changelog-preset-loader: 2.3.4
-      conventional-commits-filter: 2.0.7
-      conventional-commits-parser: 3.2.4
-      git-raw-commits: 2.0.11
-      git-semver-tags: 4.1.1
-      meow: 8.1.2
-      q: 1.5.1
-    dev: true
 
-  /convert-source-map/1.9.0:
-    resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
-    dev: true
-
-  /convert-source-map/2.0.0:
-    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
-    dev: true
-
-  /copyfiles/2.4.1:
+  copyfiles@2.4.1:
     resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==}
     hasBin: true
-    dependencies:
-      glob: 7.2.3
-      minimatch: 3.1.2
-      mkdirp: 1.0.4
-      noms: 0.0.0
-      through2: 2.0.5
-      untildify: 4.0.0
-      yargs: 16.2.0
-    dev: true
 
-  /core-util-is/1.0.3:
+  core-util-is@1.0.3:
     resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
-    dev: true
 
-  /create-require/1.1.1:
+  create-require@1.1.1:
     resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
-    dev: true
 
-  /cross-spawn/7.0.3:
+  cross-spawn@7.0.3:
     resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
     engines: {node: '>= 8'}
-    dependencies:
-      path-key: 3.1.1
-      shebang-command: 2.0.0
-      which: 2.0.2
-    dev: true
 
-  /dargs/7.0.0:
+  dargs@7.0.0:
     resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
     engines: {node: '>=8'}
-    dev: true
 
-  /dateformat/3.0.3:
+  dateformat@3.0.3:
     resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==}
-    dev: true
 
-  /debug/4.3.4:
-    resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+  debug@4.3.7:
+    resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
     engines: {node: '>=6.0'}
     peerDependencies:
       supports-color: '*'
     peerDependenciesMeta:
       supports-color:
         optional: true
-    dependencies:
-      ms: 2.1.2
-    dev: true
 
-  /decamelize-keys/1.1.1:
+  decamelize-keys@1.1.1:
     resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
     engines: {node: '>=0.10.0'}
-    dependencies:
-      decamelize: 1.2.0
-      map-obj: 1.0.1
-    dev: true
 
-  /decamelize/1.2.0:
+  decamelize@1.2.0:
     resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
     engines: {node: '>=0.10.0'}
-    dev: true
 
-  /dedent/0.7.0:
-    resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==}
-    dev: true
+  deep-eql@5.0.2:
+    resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==}
+    engines: {node: '>=6'}
 
-  /deep-is/0.1.4:
+  deep-is@0.1.4:
     resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
-    dev: true
 
-  /deepmerge/4.2.2:
-    resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
+  deepmerge@4.3.1:
+    resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
     engines: {node: '>=0.10.0'}
-    dev: true
 
-  /detect-indent/6.1.0:
+  dequal@2.0.3:
+    resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
+    engines: {node: '>=6'}
+
+  detect-indent@6.1.0:
     resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
     engines: {node: '>=8'}
-    dev: true
 
-  /detect-newline/3.1.0:
+  detect-newline@3.1.0:
     resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
     engines: {node: '>=8'}
-    dev: true
 
-  /diff-sequences/29.3.1:
-    resolution: {integrity: sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==}
+  devlop@1.1.0:
+    resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
+
+  diff-sequences@29.6.3:
+    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: true
 
-  /diff/4.0.2:
+  diff@4.0.2:
     resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
     engines: {node: '>=0.3.1'}
-    dev: true
-
-  /dir-glob/3.0.1:
-    resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
-    engines: {node: '>=8'}
-    dependencies:
-      path-type: 4.0.0
-    dev: true
-
-  /doctrine/3.0.0:
-    resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
-    engines: {node: '>=6.0.0'}
-    dependencies:
-      esutils: 2.0.3
-    dev: true
 
-  /dot-prop/5.3.0:
+  dot-prop@5.3.0:
     resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
     engines: {node: '>=8'}
-    dependencies:
-      is-obj: 2.0.0
-    dev: true
 
-  /dotgitignore/2.1.0:
+  dotgitignore@2.1.0:
     resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==}
     engines: {node: '>=6'}
-    dependencies:
-      find-up: 3.0.0
-      minimatch: 3.1.2
-    dev: true
 
-  /electron-to-chromium/1.4.284:
-    resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
-    dev: true
-
-  /emittery/0.13.1:
-    resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==}
-    engines: {node: '>=12'}
-    dev: true
+  eastasianwidth@0.2.0:
+    resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
 
-  /emoji-regex/8.0.0:
+  emoji-regex@8.0.0:
     resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
-    dev: true
 
-  /error-ex/1.3.2:
+  emoji-regex@9.2.2:
+    resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+
+  entities@4.5.0:
+    resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+    engines: {node: '>=0.12'}
+
+  error-ex@1.3.2:
     resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
-    dependencies:
-      is-arrayish: 0.2.1
-    dev: true
 
-  /escalade/3.1.1:
-    resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+  esbuild@0.21.5:
+    resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==}
+    engines: {node: '>=12'}
+    hasBin: true
+
+  escalade@3.2.0:
+    resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
     engines: {node: '>=6'}
-    dev: true
 
-  /escape-string-regexp/1.0.5:
+  escape-string-regexp@1.0.5:
     resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
     engines: {node: '>=0.8.0'}
-    dev: true
 
-  /escape-string-regexp/2.0.0:
+  escape-string-regexp@2.0.0:
     resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
     engines: {node: '>=8'}
-    dev: true
 
-  /escape-string-regexp/4.0.0:
+  escape-string-regexp@4.0.0:
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
-    dev: true
 
-  /eslint-config-prettier/8.5.0_eslint@8.27.0:
-    resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==}
+  eslint-config-prettier@9.1.0:
+    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
     hasBin: true
     peerDependencies:
       eslint: '>=7.0.0'
-    dependencies:
-      eslint: 8.27.0
-    dev: true
 
-  /eslint-plugin-prettier/4.2.1_v7o5sx5x3wbs57ifz6wc4f76we:
-    resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
-    engines: {node: '>=12.0.0'}
+  eslint-plugin-prettier@5.2.1:
+    resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==}
+    engines: {node: ^14.18.0 || >=16.0.0}
     peerDependencies:
-      eslint: '>=7.28.0'
+      '@types/eslint': '>=8.0.0'
+      eslint: '>=8.0.0'
       eslint-config-prettier: '*'
-      prettier: '>=2.0.0'
+      prettier: '>=3.0.0'
     peerDependenciesMeta:
+      '@types/eslint':
+        optional: true
       eslint-config-prettier:
         optional: true
-    dependencies:
-      eslint: 8.27.0
-      eslint-config-prettier: 8.5.0_eslint@8.27.0
-      prettier: 2.7.1
-      prettier-linter-helpers: 1.0.0
-    dev: true
 
-  /eslint-scope/5.1.1:
-    resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
-    engines: {node: '>=8.0.0'}
-    dependencies:
-      esrecurse: 4.3.0
-      estraverse: 4.3.0
-    dev: true
+  eslint-scope@8.1.0:
+    resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /eslint-scope/7.1.1:
-    resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
+  eslint-visitor-keys@3.4.3:
+    resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      esrecurse: 4.3.0
-      estraverse: 5.3.0
-    dev: true
 
-  /eslint-utils/3.0.0_eslint@8.27.0:
-    resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
-    engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
-    peerDependencies:
-      eslint: '>=5'
-    dependencies:
-      eslint: 8.27.0
-      eslint-visitor-keys: 2.1.0
-    dev: true
-
-  /eslint-visitor-keys/2.1.0:
-    resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
-    engines: {node: '>=10'}
-    dev: true
+  eslint-visitor-keys@4.1.0:
+    resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /eslint-visitor-keys/3.3.0:
-    resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dev: true
-
-  /eslint/8.27.0:
-    resolution: {integrity: sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+  eslint@9.12.0:
+    resolution: {integrity: sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     hasBin: true
-    dependencies:
-      '@eslint/eslintrc': 1.3.3
-      '@humanwhocodes/config-array': 0.11.7
-      '@humanwhocodes/module-importer': 1.0.1
-      '@nodelib/fs.walk': 1.2.8
-      ajv: 6.12.6
-      chalk: 4.1.2
-      cross-spawn: 7.0.3
-      debug: 4.3.4
-      doctrine: 3.0.0
-      escape-string-regexp: 4.0.0
-      eslint-scope: 7.1.1
-      eslint-utils: 3.0.0_eslint@8.27.0
-      eslint-visitor-keys: 3.3.0
-      espree: 9.4.1
-      esquery: 1.4.0
-      esutils: 2.0.3
-      fast-deep-equal: 3.1.3
-      file-entry-cache: 6.0.1
-      find-up: 5.0.0
-      glob-parent: 6.0.2
-      globals: 13.17.0
-      grapheme-splitter: 1.0.4
-      ignore: 5.2.0
-      import-fresh: 3.3.0
-      imurmurhash: 0.1.4
-      is-glob: 4.0.3
-      is-path-inside: 3.0.3
-      js-sdsl: 4.1.5
-      js-yaml: 4.1.0
-      json-stable-stringify-without-jsonify: 1.0.1
-      levn: 0.4.1
-      lodash.merge: 4.6.2
-      minimatch: 3.1.2
-      natural-compare: 1.4.0
-      optionator: 0.9.1
-      regexpp: 3.2.0
-      strip-ansi: 6.0.1
-      strip-json-comments: 3.1.1
-      text-table: 0.2.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
-
-  /espree/9.4.1:
-    resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
-    engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
-    dependencies:
-      acorn: 8.8.1
-      acorn-jsx: 5.3.2_acorn@8.8.1
-      eslint-visitor-keys: 3.3.0
-    dev: true
+    peerDependencies:
+      jiti: '*'
+    peerDependenciesMeta:
+      jiti:
+        optional: true
 
-  /esprima/4.0.1:
-    resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
-    engines: {node: '>=4'}
-    hasBin: true
-    dev: true
+  espree@10.2.0:
+    resolution: {integrity: sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  /esquery/1.4.0:
-    resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
+  esquery@1.6.0:
+    resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==}
     engines: {node: '>=0.10'}
-    dependencies:
-      estraverse: 5.3.0
-    dev: true
 
-  /esrecurse/4.3.0:
+  esrecurse@4.3.0:
     resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
     engines: {node: '>=4.0'}
-    dependencies:
-      estraverse: 5.3.0
-    dev: true
-
-  /estraverse/4.3.0:
-    resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
-    engines: {node: '>=4.0'}
-    dev: true
 
-  /estraverse/5.3.0:
+  estraverse@5.3.0:
     resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
     engines: {node: '>=4.0'}
-    dev: true
 
-  /estree-walker/2.0.2:
+  estree-walker@2.0.2:
     resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
-    dev: true
 
-  /esutils/2.0.3:
+  estree-walker@3.0.3:
+    resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+
+  esutils@2.0.3:
     resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
     engines: {node: '>=0.10.0'}
-    dev: true
-
-  /execa/5.1.1:
-    resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
-    engines: {node: '>=10'}
-    dependencies:
-      cross-spawn: 7.0.3
-      get-stream: 6.0.1
-      human-signals: 2.1.0
-      is-stream: 2.0.1
-      merge-stream: 2.0.0
-      npm-run-path: 4.0.1
-      onetime: 5.1.2
-      signal-exit: 3.0.7
-      strip-final-newline: 2.0.0
-    dev: true
-
-  /exit/0.1.2:
-    resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==}
-    engines: {node: '>= 0.8.0'}
-    dev: true
 
-  /expect/29.3.1:
-    resolution: {integrity: sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==}
+  expect@29.7.0:
+    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/expect-utils': 29.3.1
-      jest-get-type: 29.2.0
-      jest-matcher-utils: 29.3.1
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-    dev: true
 
-  /fast-deep-equal/3.1.3:
+  fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
-    dev: true
 
-  /fast-diff/1.2.0:
-    resolution: {integrity: sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==}
-    dev: true
+  fast-diff@1.3.0:
+    resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
 
-  /fast-glob/3.2.12:
-    resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
+  fast-glob@3.3.2:
+    resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
     engines: {node: '>=8.6.0'}
-    dependencies:
-      '@nodelib/fs.stat': 2.0.5
-      '@nodelib/fs.walk': 1.2.8
-      glob-parent: 5.1.2
-      merge2: 1.4.1
-      micromatch: 4.0.5
-    dev: true
 
-  /fast-json-stable-stringify/2.1.0:
+  fast-json-stable-stringify@2.1.0:
     resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
-    dev: true
 
-  /fast-levenshtein/2.0.6:
+  fast-levenshtein@2.0.6:
     resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
-    dev: true
 
-  /fastq/1.13.0:
-    resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
-    dependencies:
-      reusify: 1.0.4
-    dev: true
+  fastq@1.17.1:
+    resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
 
-  /fb-watchman/2.0.2:
-    resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
-    dependencies:
-      bser: 2.1.1
-    dev: true
+  fdir@6.4.0:
+    resolution: {integrity: sha512-3oB133prH1o4j/L5lLW7uOCF1PlD+/It2L0eL/iAqWMB91RBbqTewABqxhj0ibBd90EEmWZq7ntIWzVaWcXTGQ==}
+    peerDependencies:
+      picomatch: ^3 || ^4
+    peerDependenciesMeta:
+      picomatch:
+        optional: true
 
-  /figures/3.2.0:
+  figures@3.2.0:
     resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
     engines: {node: '>=8'}
-    dependencies:
-      escape-string-regexp: 1.0.5
-    dev: true
 
-  /file-entry-cache/6.0.1:
-    resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
-    engines: {node: ^10.12.0 || >=12.0.0}
-    dependencies:
-      flat-cache: 3.0.4
-    dev: true
+  file-entry-cache@8.0.0:
+    resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
+    engines: {node: '>=16.0.0'}
 
-  /fill-range/7.0.1:
-    resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+  fill-range@7.1.1:
+    resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
     engines: {node: '>=8'}
-    dependencies:
-      to-regex-range: 5.0.1
-    dev: true
 
-  /find-up/2.1.0:
+  find-up@2.1.0:
     resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
     engines: {node: '>=4'}
-    dependencies:
-      locate-path: 2.0.0
-    dev: true
 
-  /find-up/3.0.0:
+  find-up@3.0.0:
     resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==}
     engines: {node: '>=6'}
-    dependencies:
-      locate-path: 3.0.0
-    dev: true
 
-  /find-up/4.1.0:
+  find-up@4.1.0:
     resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
     engines: {node: '>=8'}
-    dependencies:
-      locate-path: 5.0.0
-      path-exists: 4.0.0
-    dev: true
 
-  /find-up/5.0.0:
+  find-up@5.0.0:
     resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
     engines: {node: '>=10'}
-    dependencies:
-      locate-path: 6.0.0
-      path-exists: 4.0.0
-    dev: true
 
-  /flat-cache/3.0.4:
-    resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
-    engines: {node: ^10.12.0 || >=12.0.0}
-    dependencies:
-      flatted: 3.2.7
-      rimraf: 3.0.2
-    dev: true
+  flat-cache@4.0.1:
+    resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
+    engines: {node: '>=16'}
+
+  flatted@3.3.1:
+    resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
 
-  /flatted/3.2.7:
-    resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
-    dev: true
+  foreground-child@3.3.0:
+    resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
+    engines: {node: '>=14'}
 
-  /fs.realpath/1.0.0:
+  fs.realpath@1.0.0:
     resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-    dev: true
 
-  /fsevents/2.3.2:
-    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+  fsevents@2.3.3:
+    resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
     engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
     os: [darwin]
-    requiresBuild: true
-    dev: true
-    optional: true
-
-  /function-bind/1.1.1:
-    resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
-    dev: true
 
-  /gensync/1.0.0-beta.2:
-    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
-    engines: {node: '>=6.9.0'}
-    dev: true
+  function-bind@1.1.2:
+    resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
 
-  /get-caller-file/2.0.5:
+  get-caller-file@2.0.5:
     resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
     engines: {node: 6.* || 8.* || >= 10.*}
-    dev: true
 
-  /get-package-type/0.1.0:
-    resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==}
-    engines: {node: '>=8.0.0'}
-    dev: true
+  get-func-name@2.0.2:
+    resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==}
 
-  /get-pkg-repo/4.2.1:
+  get-pkg-repo@4.2.1:
     resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==}
     engines: {node: '>=6.9.0'}
     hasBin: true
-    dependencies:
-      '@hutson/parse-repository-url': 3.0.2
-      hosted-git-info: 4.1.0
-      through2: 2.0.5
-      yargs: 16.2.0
-    dev: true
-
-  /get-stream/6.0.1:
-    resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
-    engines: {node: '>=10'}
-    dev: true
 
-  /git-raw-commits/2.0.11:
+  git-raw-commits@2.0.11:
     resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
     engines: {node: '>=10'}
     hasBin: true
-    dependencies:
-      dargs: 7.0.0
-      lodash: 4.17.21
-      meow: 8.1.2
-      split2: 3.2.2
-      through2: 4.0.2
-    dev: true
 
-  /git-remote-origin-url/2.0.0:
+  git-remote-origin-url@2.0.0:
     resolution: {integrity: sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==}
     engines: {node: '>=4'}
-    dependencies:
-      gitconfiglocal: 1.0.0
-      pify: 2.3.0
-    dev: true
 
-  /git-semver-tags/4.1.1:
+  git-semver-tags@4.1.1:
     resolution: {integrity: sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==}
     engines: {node: '>=10'}
     hasBin: true
-    dependencies:
-      meow: 8.1.2
-      semver: 6.3.0
-    dev: true
 
-  /gitconfiglocal/1.0.0:
+  gitconfiglocal@1.0.0:
     resolution: {integrity: sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==}
-    dependencies:
-      ini: 1.3.8
-    dev: true
 
-  /glob-parent/5.1.2:
+  glob-parent@5.1.2:
     resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
     engines: {node: '>= 6'}
-    dependencies:
-      is-glob: 4.0.3
-    dev: true
 
-  /glob-parent/6.0.2:
+  glob-parent@6.0.2:
     resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
     engines: {node: '>=10.13.0'}
-    dependencies:
-      is-glob: 4.0.3
-    dev: true
-
-  /glob/7.2.3:
-    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
-    dependencies:
-      fs.realpath: 1.0.0
-      inflight: 1.0.6
-      inherits: 2.0.4
-      minimatch: 3.1.2
-      once: 1.4.0
-      path-is-absolute: 1.0.1
-    dev: true
 
-  /glob/8.0.3:
-    resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==}
-    engines: {node: '>=12'}
-    dependencies:
-      fs.realpath: 1.0.0
-      inflight: 1.0.6
-      inherits: 2.0.4
-      minimatch: 5.1.0
-      once: 1.4.0
-    dev: true
+  glob@10.4.5:
+    resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+    hasBin: true
 
-  /globals/11.12.0:
-    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
-    engines: {node: '>=4'}
-    dev: true
+  glob@11.0.0:
+    resolution: {integrity: sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==}
+    engines: {node: 20 || >=22}
+    hasBin: true
 
-  /globals/13.17.0:
-    resolution: {integrity: sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==}
-    engines: {node: '>=8'}
-    dependencies:
-      type-fest: 0.20.2
-    dev: true
+  glob@7.2.3:
+    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+    deprecated: Glob versions prior to v9 are no longer supported
 
-  /globby/11.1.0:
-    resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
-    engines: {node: '>=10'}
-    dependencies:
-      array-union: 2.1.0
-      dir-glob: 3.0.1
-      fast-glob: 3.2.12
-      ignore: 5.2.0
-      merge2: 1.4.1
-      slash: 3.0.0
-    dev: true
+  globals@14.0.0:
+    resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
+    engines: {node: '>=18'}
 
-  /graceful-fs/4.2.10:
-    resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
-    dev: true
+  graceful-fs@4.2.11:
+    resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
 
-  /grapheme-splitter/1.0.4:
-    resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
-    dev: true
+  graphemer@1.4.0:
+    resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
 
-  /handlebars/4.7.7:
-    resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==}
+  handlebars@4.7.8:
+    resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
     engines: {node: '>=0.4.7'}
     hasBin: true
-    dependencies:
-      minimist: 1.2.7
-      neo-async: 2.6.2
-      source-map: 0.6.1
-      wordwrap: 1.0.0
-    optionalDependencies:
-      uglify-js: 3.17.4
-    dev: true
 
-  /hard-rejection/2.1.0:
+  hard-rejection@2.1.0:
     resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
     engines: {node: '>=6'}
-    dev: true
 
-  /has-flag/3.0.0:
+  has-flag@3.0.0:
     resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
     engines: {node: '>=4'}
-    dev: true
 
-  /has-flag/4.0.0:
+  has-flag@4.0.0:
     resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
     engines: {node: '>=8'}
-    dev: true
 
-  /has/1.0.3:
-    resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
-    engines: {node: '>= 0.4.0'}
-    dependencies:
-      function-bind: 1.1.1
-    dev: true
+  hasown@2.0.2:
+    resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+    engines: {node: '>= 0.4'}
+
+  hast-util-to-html@9.0.3:
+    resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==}
 
-  /hosted-git-info/2.8.9:
+  hast-util-whitespace@3.0.0:
+    resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
+
+  hosted-git-info@2.8.9:
     resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
-    dev: true
 
-  /hosted-git-info/4.1.0:
+  hosted-git-info@4.1.0:
     resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
     engines: {node: '>=10'}
-    dependencies:
-      lru-cache: 6.0.0
-    dev: true
 
-  /html-escaper/2.0.2:
+  html-escaper@2.0.2:
     resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
-    dev: true
 
-  /human-signals/2.1.0:
-    resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
-    engines: {node: '>=10.17.0'}
-    dev: true
+  html-void-elements@3.0.0:
+    resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
 
-  /ignore/5.2.0:
-    resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
+  ignore@5.3.2:
+    resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
     engines: {node: '>= 4'}
-    dev: true
 
-  /import-fresh/3.3.0:
+  import-fresh@3.3.0:
     resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
     engines: {node: '>=6'}
-    dependencies:
-      parent-module: 1.0.1
-      resolve-from: 4.0.0
-    dev: true
-
-  /import-local/3.1.0:
-    resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
-    engines: {node: '>=8'}
-    hasBin: true
-    dependencies:
-      pkg-dir: 4.2.0
-      resolve-cwd: 3.0.0
-    dev: true
 
-  /imurmurhash/0.1.4:
+  imurmurhash@0.1.4:
     resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
     engines: {node: '>=0.8.19'}
-    dev: true
 
-  /indent-string/4.0.0:
+  indent-string@4.0.0:
     resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
     engines: {node: '>=8'}
-    dev: true
 
-  /inflight/1.0.6:
+  inflight@1.0.6:
     resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
-    dependencies:
-      once: 1.4.0
-      wrappy: 1.0.2
-    dev: true
+    deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
 
-  /inherits/2.0.4:
+  inherits@2.0.4:
     resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-    dev: true
 
-  /ini/1.3.8:
+  ini@1.3.8:
     resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
-    dev: true
 
-  /is-arrayish/0.2.1:
+  is-arrayish@0.2.1:
     resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
-    dev: true
-
-  /is-builtin-module/3.2.0:
-    resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==}
-    engines: {node: '>=6'}
-    dependencies:
-      builtin-modules: 3.3.0
-    dev: true
 
-  /is-core-module/2.11.0:
-    resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
-    dependencies:
-      has: 1.0.3
-    dev: true
+  is-core-module@2.15.1:
+    resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
+    engines: {node: '>= 0.4'}
 
-  /is-extglob/2.1.1:
+  is-extglob@2.1.1:
     resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
     engines: {node: '>=0.10.0'}
-    dev: true
 
-  /is-fullwidth-code-point/3.0.0:
+  is-fullwidth-code-point@3.0.0:
     resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
     engines: {node: '>=8'}
-    dev: true
 
-  /is-generator-fn/2.1.0:
-    resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==}
-    engines: {node: '>=6'}
-    dev: true
-
-  /is-glob/4.0.3:
+  is-glob@4.0.3:
     resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
     engines: {node: '>=0.10.0'}
-    dependencies:
-      is-extglob: 2.1.1
-    dev: true
 
-  /is-module/1.0.0:
+  is-module@1.0.0:
     resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
-    dev: true
 
-  /is-number/7.0.0:
+  is-number@7.0.0:
     resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
     engines: {node: '>=0.12.0'}
-    dev: true
 
-  /is-obj/2.0.0:
+  is-obj@2.0.0:
     resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==}
     engines: {node: '>=8'}
-    dev: true
 
-  /is-path-inside/3.0.3:
-    resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
-    engines: {node: '>=8'}
-    dev: true
-
-  /is-plain-obj/1.1.0:
+  is-plain-obj@1.1.0:
     resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
     engines: {node: '>=0.10.0'}
-    dev: true
 
-  /is-reference/1.2.1:
+  is-reference@1.2.1:
     resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
-    dependencies:
-      '@types/estree': 1.0.0
-    dev: true
-
-  /is-stream/2.0.1:
-    resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
-    engines: {node: '>=8'}
-    dev: true
 
-  /is-text-path/1.0.1:
+  is-text-path@1.0.1:
     resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
     engines: {node: '>=0.10.0'}
-    dependencies:
-      text-extensions: 1.9.0
-    dev: true
 
-  /isarray/0.0.1:
+  isarray@0.0.1:
     resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
-    dev: true
 
-  /isarray/1.0.0:
+  isarray@1.0.0:
     resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
-    dev: true
 
-  /isexe/2.0.0:
+  isexe@2.0.0:
     resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
-    dev: true
-
-  /istanbul-lib-coverage/3.2.0:
-    resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==}
-    engines: {node: '>=8'}
-    dev: true
 
-  /istanbul-lib-instrument/5.2.1:
-    resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==}
+  istanbul-lib-coverage@3.2.2:
+    resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==}
     engines: {node: '>=8'}
-    dependencies:
-      '@babel/core': 7.20.2
-      '@babel/parser': 7.20.3
-      '@istanbuljs/schema': 0.1.3
-      istanbul-lib-coverage: 3.2.0
-      semver: 6.3.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /istanbul-lib-report/3.0.0:
-    resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==}
-    engines: {node: '>=8'}
-    dependencies:
-      istanbul-lib-coverage: 3.2.0
-      make-dir: 3.1.0
-      supports-color: 7.2.0
-    dev: true
+  istanbul-lib-report@3.0.1:
+    resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==}
+    engines: {node: '>=10'}
 
-  /istanbul-lib-source-maps/4.0.1:
-    resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==}
+  istanbul-lib-source-maps@5.0.6:
+    resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
     engines: {node: '>=10'}
-    dependencies:
-      debug: 4.3.4
-      istanbul-lib-coverage: 3.2.0
-      source-map: 0.6.1
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /istanbul-reports/3.1.5:
-    resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==}
+  istanbul-reports@3.1.7:
+    resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
     engines: {node: '>=8'}
-    dependencies:
-      html-escaper: 2.0.2
-      istanbul-lib-report: 3.0.0
-    dev: true
 
-  /jest-changed-files/29.2.0:
-    resolution: {integrity: sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==}
+  jackspeak@3.4.3:
+    resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
+
+  jackspeak@4.0.2:
+    resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
+    engines: {node: 20 || >=22}
+
+  jest-diff@29.7.0:
+    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      execa: 5.1.1
-      p-limit: 3.1.0
-    dev: true
 
-  /jest-circus/29.3.1:
-    resolution: {integrity: sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==}
+  jest-get-type@29.6.3:
+    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/expect': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      co: 4.6.0
-      dedent: 0.7.0
-      is-generator-fn: 2.1.0
-      jest-each: 29.3.1
-      jest-matcher-utils: 29.3.1
-      jest-message-util: 29.3.1
-      jest-runtime: 29.3.1
-      jest-snapshot: 29.3.1
-      jest-util: 29.3.1
-      p-limit: 3.1.0
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      stack-utils: 2.0.6
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
 
-  /jest-cli/29.3.1_qgsvtivhigskinhtkon55hue3i:
-    resolution: {integrity: sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==}
+  jest-matcher-utils@29.7.0:
+    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    hasBin: true
-    peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
-    dependencies:
-      '@jest/core': 29.3.1_ts-node@10.9.1
-      '@jest/test-result': 29.3.1
-      '@jest/types': 29.3.1
-      chalk: 4.1.2
-      exit: 0.1.2
-      graceful-fs: 4.2.10
-      import-local: 3.1.0
-      jest-config: 29.3.1_qgsvtivhigskinhtkon55hue3i
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      prompts: 2.4.2
-      yargs: 17.6.2
-    transitivePeerDependencies:
-      - '@types/node'
-      - supports-color
-      - ts-node
-    dev: true
 
-  /jest-config/29.3.1_qgsvtivhigskinhtkon55hue3i:
-    resolution: {integrity: sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==}
+  jest-message-util@29.7.0:
+    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
     engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    peerDependencies:
-      '@types/node': '*'
-      ts-node: '>=9.0.0'
-    peerDependenciesMeta:
-      '@types/node':
-        optional: true
-      ts-node:
-        optional: true
-    dependencies:
-      '@babel/core': 7.20.2
-      '@jest/test-sequencer': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      babel-jest: 29.3.1_@babel+core@7.20.2
-      chalk: 4.1.2
-      ci-info: 3.6.1
-      deepmerge: 4.2.2
+
+  jest-util@29.7.0:
+    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
+    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+  jest-worker@26.6.2:
+    resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
+    engines: {node: '>= 10.13.0'}
+
+  js-tokens@4.0.0:
+    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+
+  js-yaml@4.1.0:
+    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+    hasBin: true
+
+  json-buffer@3.0.1:
+    resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
+
+  json-parse-better-errors@1.0.2:
+    resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
+
+  json-parse-even-better-errors@2.3.1:
+    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
+
+  json-schema-traverse@0.4.1:
+    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+
+  json-stable-stringify-without-jsonify@1.0.1:
+    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+
+  json-stringify-safe@5.0.1:
+    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+
+  jsonparse@1.3.1:
+    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
+    engines: {'0': node >= 0.2.0}
+
+  keyv@4.5.4:
+    resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
+
+  kind-of@6.0.3:
+    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+    engines: {node: '>=0.10.0'}
+
+  levn@0.4.1:
+    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+    engines: {node: '>= 0.8.0'}
+
+  lines-and-columns@1.2.4:
+    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
+
+  linkify-it@5.0.0:
+    resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==}
+
+  load-json-file@4.0.0:
+    resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
+    engines: {node: '>=4'}
+
+  locate-path@2.0.0:
+    resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
+    engines: {node: '>=4'}
+
+  locate-path@3.0.0:
+    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
+    engines: {node: '>=6'}
+
+  locate-path@5.0.0:
+    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
+    engines: {node: '>=8'}
+
+  locate-path@6.0.0:
+    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+    engines: {node: '>=10'}
+
+  lodash.ismatch@4.4.0:
+    resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
+
+  lodash.merge@4.6.2:
+    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+  lodash@4.17.21:
+    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+  loupe@3.1.1:
+    resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==}
+
+  lru-cache@10.4.3:
+    resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
+
+  lru-cache@11.0.1:
+    resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==}
+    engines: {node: 20 || >=22}
+
+  lru-cache@6.0.0:
+    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+    engines: {node: '>=10'}
+
+  lunr@2.3.9:
+    resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+
+  magic-string@0.30.11:
+    resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
+
+  magicast@0.3.5:
+    resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==}
+
+  make-dir@4.0.0:
+    resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
+    engines: {node: '>=10'}
+
+  make-error@1.3.6:
+    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+
+  map-obj@1.0.1:
+    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+    engines: {node: '>=0.10.0'}
+
+  map-obj@4.3.0:
+    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+    engines: {node: '>=8'}
+
+  markdown-it@14.1.0:
+    resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==}
+    hasBin: true
+
+  mdast-util-to-hast@13.2.0:
+    resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
+
+  mdurl@2.0.0:
+    resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
+
+  meow@8.1.2:
+    resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
+    engines: {node: '>=10'}
+
+  merge-stream@2.0.0:
+    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+
+  merge2@1.4.1:
+    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+    engines: {node: '>= 8'}
+
+  micromark-util-character@2.1.0:
+    resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==}
+
+  micromark-util-encode@2.0.0:
+    resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==}
+
+  micromark-util-sanitize-uri@2.0.0:
+    resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==}
+
+  micromark-util-symbol@2.0.0:
+    resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==}
+
+  micromark-util-types@2.0.0:
+    resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==}
+
+  micromatch@4.0.8:
+    resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
+    engines: {node: '>=8.6'}
+
+  min-indent@1.0.1:
+    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+    engines: {node: '>=4'}
+
+  minimatch@10.0.1:
+    resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
+    engines: {node: 20 || >=22}
+
+  minimatch@3.1.2:
+    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+
+  minimatch@9.0.5:
+    resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
+    engines: {node: '>=16 || 14 >=14.17'}
+
+  minimist-options@4.1.0:
+    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+    engines: {node: '>= 6'}
+
+  minimist@1.2.8:
+    resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
+
+  minipass@7.1.2:
+    resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
+    engines: {node: '>=16 || 14 >=14.17'}
+
+  mkdirp@1.0.4:
+    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  modify-values@1.0.1:
+    resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==}
+    engines: {node: '>=0.10.0'}
+
+  ms@2.1.3:
+    resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
+
+  nanoid@3.3.7:
+    resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+    hasBin: true
+
+  natural-compare@1.4.0:
+    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+  neo-async@2.6.2:
+    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
+
+  noms@0.0.0:
+    resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==}
+
+  normalize-package-data@2.5.0:
+    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
+  normalize-package-data@3.0.3:
+    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
+    engines: {node: '>=10'}
+
+  once@1.4.0:
+    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+
+  oniguruma-to-js@0.4.3:
+    resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==}
+
+  optionator@0.9.4:
+    resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
+    engines: {node: '>= 0.8.0'}
+
+  p-limit@1.3.0:
+    resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
+    engines: {node: '>=4'}
+
+  p-limit@2.3.0:
+    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
+    engines: {node: '>=6'}
+
+  p-limit@3.1.0:
+    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+    engines: {node: '>=10'}
+
+  p-locate@2.0.0:
+    resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
+    engines: {node: '>=4'}
+
+  p-locate@3.0.0:
+    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
+    engines: {node: '>=6'}
+
+  p-locate@4.1.0:
+    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
+    engines: {node: '>=8'}
+
+  p-locate@5.0.0:
+    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+    engines: {node: '>=10'}
+
+  p-try@1.0.0:
+    resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
+    engines: {node: '>=4'}
+
+  p-try@2.2.0:
+    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
+    engines: {node: '>=6'}
+
+  package-json-from-dist@1.0.1:
+    resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
+
+  parent-module@1.0.1:
+    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+    engines: {node: '>=6'}
+
+  parse-json@4.0.0:
+    resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
+    engines: {node: '>=4'}
+
+  parse-json@5.2.0:
+    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
+    engines: {node: '>=8'}
+
+  path-exists@3.0.0:
+    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
+    engines: {node: '>=4'}
+
+  path-exists@4.0.0:
+    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+    engines: {node: '>=8'}
+
+  path-is-absolute@1.0.1:
+    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+    engines: {node: '>=0.10.0'}
+
+  path-key@3.1.1:
+    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+    engines: {node: '>=8'}
+
+  path-parse@1.0.7:
+    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
+  path-scurry@1.11.1:
+    resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
+    engines: {node: '>=16 || 14 >=14.18'}
+
+  path-scurry@2.0.0:
+    resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
+    engines: {node: 20 || >=22}
+
+  path-type@3.0.0:
+    resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
+    engines: {node: '>=4'}
+
+  pathe@1.1.2:
+    resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+
+  pathval@2.0.0:
+    resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
+    engines: {node: '>= 14.16'}
+
+  picocolors@1.1.0:
+    resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
+
+  picomatch@2.3.1:
+    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+    engines: {node: '>=8.6'}
+
+  pify@2.3.0:
+    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
+    engines: {node: '>=0.10.0'}
+
+  pify@3.0.0:
+    resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
+    engines: {node: '>=4'}
+
+  postcss@8.4.47:
+    resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
+    engines: {node: ^10 || ^12 || >=14}
+
+  prelude-ls@1.2.1:
+    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+    engines: {node: '>= 0.8.0'}
+
+  prettier-linter-helpers@1.0.0:
+    resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+    engines: {node: '>=6.0.0'}
+
+  prettier@3.3.3:
+    resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
+    engines: {node: '>=14'}
+    hasBin: true
+
+  pretty-format@29.7.0:
+    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
+    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+
+  process-nextick-args@2.0.1:
+    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+
+  property-information@6.5.0:
+    resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==}
+
+  punycode.js@2.3.1:
+    resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==}
+    engines: {node: '>=6'}
+
+  punycode@2.3.1:
+    resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
+    engines: {node: '>=6'}
+
+  q@1.5.1:
+    resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
+    engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
+    deprecated: |-
+      You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.
+
+      (For a CapTP with native promises, see @endo/eventual-send and @endo/captp)
+
+  queue-microtask@1.2.3:
+    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+  quick-lru@4.0.1:
+    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
+    engines: {node: '>=8'}
+
+  randombytes@2.1.0:
+    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+
+  react-is@18.3.1:
+    resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+
+  read-pkg-up@3.0.0:
+    resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
+    engines: {node: '>=4'}
+
+  read-pkg-up@7.0.1:
+    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+    engines: {node: '>=8'}
+
+  read-pkg@3.0.0:
+    resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
+    engines: {node: '>=4'}
+
+  read-pkg@5.2.0:
+    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+    engines: {node: '>=8'}
+
+  readable-stream@1.0.34:
+    resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==}
+
+  readable-stream@2.3.8:
+    resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
+
+  readable-stream@3.6.2:
+    resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+    engines: {node: '>= 6'}
+
+  redent@3.0.0:
+    resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
+    engines: {node: '>=8'}
+
+  regex@4.3.3:
+    resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==}
+
+  require-directory@2.1.1:
+    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+    engines: {node: '>=0.10.0'}
+
+  resolve-from@4.0.0:
+    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+    engines: {node: '>=4'}
+
+  resolve@1.22.8:
+    resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+    hasBin: true
+
+  reusify@1.0.4:
+    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+
+  rimraf@6.0.1:
+    resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==}
+    engines: {node: 20 || >=22}
+    hasBin: true
+
+  rollup-plugin-terser@7.0.2:
+    resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
+    deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
+    peerDependencies:
+      rollup: ^2.0.0
+
+  rollup@4.24.0:
+    resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==}
+    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+    hasBin: true
+
+  run-parallel@1.2.0:
+    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+
+  safe-buffer@5.1.2:
+    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
+
+  safe-buffer@5.2.1:
+    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+
+  semver@5.7.2:
+    resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+    hasBin: true
+
+  semver@6.3.1:
+    resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+    hasBin: true
+
+  semver@7.6.3:
+    resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  serialize-javascript@4.0.0:
+    resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
+
+  shebang-command@2.0.0:
+    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+    engines: {node: '>=8'}
+
+  shebang-regex@3.0.0:
+    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+    engines: {node: '>=8'}
+
+  shiki@1.21.1:
+    resolution: {integrity: sha512-jSOKRHyQJxGOW3kJflmwzHJbp/kjg6hP8LYuVbCPw5oyX+fSNNoCywvcCD3w9eHbj2rvNljt7YMa5BP5Xi+nHg==}
+
+  siginfo@2.0.0:
+    resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
+
+  signal-exit@4.1.0:
+    resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+    engines: {node: '>=14'}
+
+  slash@3.0.0:
+    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+    engines: {node: '>=8'}
+
+  source-map-js@1.2.1:
+    resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+    engines: {node: '>=0.10.0'}
+
+  source-map-support@0.5.21:
+    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+
+  source-map@0.6.1:
+    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+    engines: {node: '>=0.10.0'}
+
+  space-separated-tokens@2.0.2:
+    resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==}
+
+  spdx-correct@3.2.0:
+    resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+  spdx-exceptions@2.5.0:
+    resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+  spdx-expression-parse@3.0.1:
+    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+  spdx-license-ids@3.0.20:
+    resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==}
+
+  split2@3.2.2:
+    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
+
+  split@1.0.1:
+    resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
+
+  stack-utils@2.0.6:
+    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
+    engines: {node: '>=10'}
+
+  stackback@0.0.2:
+    resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
+
+  standard-version@9.5.0:
+    resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  std-env@3.7.0:
+    resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
+
+  string-width@4.2.3:
+    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+    engines: {node: '>=8'}
+
+  string-width@5.1.2:
+    resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+    engines: {node: '>=12'}
+
+  string_decoder@0.10.31:
+    resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
+
+  string_decoder@1.1.1:
+    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+
+  string_decoder@1.3.0:
+    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+
+  stringify-entities@4.0.4:
+    resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==}
+
+  stringify-package@1.0.1:
+    resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==}
+    deprecated: This module is not used anymore, and has been replaced by @npmcli/package-json
+
+  strip-ansi@6.0.1:
+    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+    engines: {node: '>=8'}
+
+  strip-ansi@7.1.0:
+    resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+    engines: {node: '>=12'}
+
+  strip-bom@3.0.0:
+    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+    engines: {node: '>=4'}
+
+  strip-indent@3.0.0:
+    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+    engines: {node: '>=8'}
+
+  strip-json-comments@3.1.1:
+    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+    engines: {node: '>=8'}
+
+  supports-color@5.5.0:
+    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+    engines: {node: '>=4'}
+
+  supports-color@7.2.0:
+    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+    engines: {node: '>=8'}
+
+  supports-preserve-symlinks-flag@1.0.0:
+    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+    engines: {node: '>= 0.4'}
+
+  synckit@0.9.1:
+    resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==}
+    engines: {node: ^14.18.0 || >=16.0.0}
+
+  terser@5.34.1:
+    resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==}
+    engines: {node: '>=10'}
+    hasBin: true
+
+  test-exclude@7.0.1:
+    resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==}
+    engines: {node: '>=18'}
+
+  text-extensions@1.9.0:
+    resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
+    engines: {node: '>=0.10'}
+
+  text-table@0.2.0:
+    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+
+  through2@2.0.5:
+    resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+
+  through2@4.0.2:
+    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+
+  through@2.3.8:
+    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+
+  tinybench@2.9.0:
+    resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
+
+  tinyexec@0.3.0:
+    resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==}
+
+  tinypool@1.0.1:
+    resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+
+  tinyrainbow@1.2.0:
+    resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==}
+    engines: {node: '>=14.0.0'}
+
+  tinyspy@3.0.2:
+    resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==}
+    engines: {node: '>=14.0.0'}
+
+  to-fast-properties@2.0.0:
+    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+    engines: {node: '>=4'}
+
+  to-regex-range@5.0.1:
+    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+    engines: {node: '>=8.0'}
+
+  trim-lines@3.0.1:
+    resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+
+  trim-newlines@3.0.1:
+    resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
+    engines: {node: '>=8'}
+
+  ts-api-utils@1.3.0:
+    resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
+    engines: {node: '>=16'}
+    peerDependencies:
+      typescript: '>=4.2.0'
+
+  ts-node@10.9.2:
+    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
+    hasBin: true
+    peerDependencies:
+      '@swc/core': '>=1.2.50'
+      '@swc/wasm': '>=1.2.50'
+      '@types/node': '*'
+      typescript: '>=2.7'
+    peerDependenciesMeta:
+      '@swc/core':
+        optional: true
+      '@swc/wasm':
+        optional: true
+
+  tslib@2.7.0:
+    resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
+
+  type-check@0.4.0:
+    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+    engines: {node: '>= 0.8.0'}
+
+  type-fest@0.18.1:
+    resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
+    engines: {node: '>=10'}
+
+  type-fest@0.6.0:
+    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+    engines: {node: '>=8'}
+
+  type-fest@0.8.1:
+    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
+    engines: {node: '>=8'}
+
+  typedarray@0.0.6:
+    resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
+
+  typedoc@0.26.8:
+    resolution: {integrity: sha512-QBF0BMbnNeUc6U7pRHY7Jb8pjhmiNWZNQT8LU6uk9qP9t3goP9bJptdlNqMC0wBB2w9sQrxjZt835bpRSSq1LA==}
+    engines: {node: '>= 18'}
+    hasBin: true
+    peerDependencies:
+      typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x
+
+  typescript@5.6.2:
+    resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
+    engines: {node: '>=14.17'}
+    hasBin: true
+
+  uc.micro@2.1.0:
+    resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
+
+  uglify-js@3.19.3:
+    resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
+    engines: {node: '>=0.8.0'}
+    hasBin: true
+
+  undici-types@6.19.8:
+    resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
+
+  unist-util-is@6.0.0:
+    resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==}
+
+  unist-util-position@5.0.0:
+    resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==}
+
+  unist-util-stringify-position@4.0.0:
+    resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==}
+
+  unist-util-visit-parents@6.0.1:
+    resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==}
+
+  unist-util-visit@5.0.0:
+    resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
+
+  untildify@4.0.0:
+    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
+    engines: {node: '>=8'}
+
+  uri-js@4.4.1:
+    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+
+  util-deprecate@1.0.2:
+    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+
+  v8-compile-cache-lib@3.0.1:
+    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
+
+  validate-npm-package-license@3.0.4:
+    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
+  vfile-message@4.0.2:
+    resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==}
+
+  vfile@6.0.3:
+    resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==}
+
+  vite-node@2.1.2:
+    resolution: {integrity: sha512-HPcGNN5g/7I2OtPjLqgOtCRu/qhVvBxTUD3qzitmL0SrG1cWFzxzhMDWussxSbrRYWqnKf8P2jiNhPMSN+ymsQ==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+
+  vite@5.4.8:
+    resolution: {integrity: sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+    peerDependencies:
+      '@types/node': ^18.0.0 || >=20.0.0
+      less: '*'
+      lightningcss: ^1.21.0
+      sass: '*'
+      sass-embedded: '*'
+      stylus: '*'
+      sugarss: '*'
+      terser: ^5.4.0
+    peerDependenciesMeta:
+      '@types/node':
+        optional: true
+      less:
+        optional: true
+      lightningcss:
+        optional: true
+      sass:
+        optional: true
+      sass-embedded:
+        optional: true
+      stylus:
+        optional: true
+      sugarss:
+        optional: true
+      terser:
+        optional: true
+
+  vitest@2.1.2:
+    resolution: {integrity: sha512-veNjLizOMkRrJ6xxb+pvxN6/QAWg95mzcRjtmkepXdN87FNfxAss9RKe2far/G9cQpipfgP2taqg0KiWsquj8A==}
+    engines: {node: ^18.0.0 || >=20.0.0}
+    hasBin: true
+    peerDependencies:
+      '@edge-runtime/vm': '*'
+      '@types/node': ^18.0.0 || >=20.0.0
+      '@vitest/browser': 2.1.2
+      '@vitest/ui': 2.1.2
+      happy-dom: '*'
+      jsdom: '*'
+    peerDependenciesMeta:
+      '@edge-runtime/vm':
+        optional: true
+      '@types/node':
+        optional: true
+      '@vitest/browser':
+        optional: true
+      '@vitest/ui':
+        optional: true
+      happy-dom:
+        optional: true
+      jsdom:
+        optional: true
+
+  which@2.0.2:
+    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+    engines: {node: '>= 8'}
+    hasBin: true
+
+  why-is-node-running@2.3.0:
+    resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
+    engines: {node: '>=8'}
+    hasBin: true
+
+  word-wrap@1.2.5:
+    resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
+    engines: {node: '>=0.10.0'}
+
+  wordwrap@1.0.0:
+    resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+
+  wrap-ansi@7.0.0:
+    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+    engines: {node: '>=10'}
+
+  wrap-ansi@8.1.0:
+    resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+    engines: {node: '>=12'}
+
+  wrappy@1.0.2:
+    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+  xtend@4.0.2:
+    resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
+    engines: {node: '>=0.4'}
+
+  y18n@5.0.8:
+    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+    engines: {node: '>=10'}
+
+  yallist@4.0.0:
+    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+  yaml@2.5.1:
+    resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==}
+    engines: {node: '>= 14'}
+    hasBin: true
+
+  yargs-parser@20.2.9:
+    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+    engines: {node: '>=10'}
+
+  yargs@16.2.0:
+    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
+    engines: {node: '>=10'}
+
+  yn@3.1.1:
+    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
+    engines: {node: '>=6'}
+
+  yocto-queue@0.1.0:
+    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+    engines: {node: '>=10'}
+
+  zwitch@2.0.4:
+    resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
+
+snapshots:
+
+  '@ampproject/remapping@2.3.0':
+    dependencies:
+      '@jridgewell/gen-mapping': 0.3.5
+      '@jridgewell/trace-mapping': 0.3.25
+
+  '@babel/code-frame@7.25.7':
+    dependencies:
+      '@babel/highlight': 7.25.7
+      picocolors: 1.1.0
+
+  '@babel/helper-string-parser@7.25.7': {}
+
+  '@babel/helper-validator-identifier@7.25.7': {}
+
+  '@babel/highlight@7.25.7':
+    dependencies:
+      '@babel/helper-validator-identifier': 7.25.7
+      chalk: 2.4.2
+      js-tokens: 4.0.0
+      picocolors: 1.1.0
+
+  '@babel/parser@7.25.7':
+    dependencies:
+      '@babel/types': 7.25.7
+
+  '@babel/types@7.25.7':
+    dependencies:
+      '@babel/helper-string-parser': 7.25.7
+      '@babel/helper-validator-identifier': 7.25.7
+      to-fast-properties: 2.0.0
+
+  '@bcoe/v8-coverage@0.2.3': {}
+
+  '@cspotcode/source-map-support@0.8.1':
+    dependencies:
+      '@jridgewell/trace-mapping': 0.3.9
+
+  '@esbuild/aix-ppc64@0.21.5':
+    optional: true
+
+  '@esbuild/android-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/android-arm@0.21.5':
+    optional: true
+
+  '@esbuild/android-x64@0.21.5':
+    optional: true
+
+  '@esbuild/darwin-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/darwin-x64@0.21.5':
+    optional: true
+
+  '@esbuild/freebsd-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/freebsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-arm@0.21.5':
+    optional: true
+
+  '@esbuild/linux-ia32@0.21.5':
+    optional: true
+
+  '@esbuild/linux-loong64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-mips64el@0.21.5':
+    optional: true
+
+  '@esbuild/linux-ppc64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-riscv64@0.21.5':
+    optional: true
+
+  '@esbuild/linux-s390x@0.21.5':
+    optional: true
+
+  '@esbuild/linux-x64@0.21.5':
+    optional: true
+
+  '@esbuild/netbsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/openbsd-x64@0.21.5':
+    optional: true
+
+  '@esbuild/sunos-x64@0.21.5':
+    optional: true
+
+  '@esbuild/win32-arm64@0.21.5':
+    optional: true
+
+  '@esbuild/win32-ia32@0.21.5':
+    optional: true
+
+  '@esbuild/win32-x64@0.21.5':
+    optional: true
+
+  '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)':
+    dependencies:
+      eslint: 9.12.0
+      eslint-visitor-keys: 3.4.3
+
+  '@eslint-community/regexpp@4.11.1': {}
+
+  '@eslint/config-array@0.18.0':
+    dependencies:
+      '@eslint/object-schema': 2.1.4
+      debug: 4.3.7
+      minimatch: 3.1.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@eslint/core@0.6.0': {}
+
+  '@eslint/eslintrc@3.1.0':
+    dependencies:
+      ajv: 6.12.6
+      debug: 4.3.7
+      espree: 10.2.0
+      globals: 14.0.0
+      ignore: 5.3.2
+      import-fresh: 3.3.0
+      js-yaml: 4.1.0
+      minimatch: 3.1.2
+      strip-json-comments: 3.1.1
+    transitivePeerDependencies:
+      - supports-color
+
+  '@eslint/js@9.12.0': {}
+
+  '@eslint/object-schema@2.1.4': {}
+
+  '@eslint/plugin-kit@0.2.0':
+    dependencies:
+      levn: 0.4.1
+
+  '@humanfs/core@0.19.0': {}
+
+  '@humanfs/node@0.16.5':
+    dependencies:
+      '@humanfs/core': 0.19.0
+      '@humanwhocodes/retry': 0.3.1
+
+  '@humanwhocodes/module-importer@1.0.1': {}
+
+  '@humanwhocodes/retry@0.3.1': {}
+
+  '@hutson/parse-repository-url@3.0.2': {}
+
+  '@isaacs/cliui@8.0.2':
+    dependencies:
+      string-width: 5.1.2
+      string-width-cjs: string-width@4.2.3
+      strip-ansi: 7.1.0
+      strip-ansi-cjs: strip-ansi@6.0.1
+      wrap-ansi: 8.1.0
+      wrap-ansi-cjs: wrap-ansi@7.0.0
+
+  '@istanbuljs/schema@0.1.3': {}
+
+  '@jest/expect-utils@29.7.0':
+    dependencies:
+      jest-get-type: 29.6.3
+
+  '@jest/schemas@29.6.3':
+    dependencies:
+      '@sinclair/typebox': 0.27.8
+
+  '@jest/types@29.6.3':
+    dependencies:
+      '@jest/schemas': 29.6.3
+      '@types/istanbul-lib-coverage': 2.0.6
+      '@types/istanbul-reports': 3.0.4
+      '@types/node': 22.7.4
+      '@types/yargs': 17.0.33
+      chalk: 4.1.2
+
+  '@jridgewell/gen-mapping@0.3.5':
+    dependencies:
+      '@jridgewell/set-array': 1.2.1
+      '@jridgewell/sourcemap-codec': 1.5.0
+      '@jridgewell/trace-mapping': 0.3.25
+
+  '@jridgewell/resolve-uri@3.1.2': {}
+
+  '@jridgewell/set-array@1.2.1': {}
+
+  '@jridgewell/source-map@0.3.6':
+    dependencies:
+      '@jridgewell/gen-mapping': 0.3.5
+      '@jridgewell/trace-mapping': 0.3.25
+
+  '@jridgewell/sourcemap-codec@1.5.0': {}
+
+  '@jridgewell/trace-mapping@0.3.25':
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.2
+      '@jridgewell/sourcemap-codec': 1.5.0
+
+  '@jridgewell/trace-mapping@0.3.9':
+    dependencies:
+      '@jridgewell/resolve-uri': 3.1.2
+      '@jridgewell/sourcemap-codec': 1.5.0
+
+  '@nodelib/fs.scandir@2.1.5':
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      run-parallel: 1.2.0
+
+  '@nodelib/fs.stat@2.0.5': {}
+
+  '@nodelib/fs.walk@1.2.8':
+    dependencies:
+      '@nodelib/fs.scandir': 2.1.5
+      fastq: 1.17.1
+
+  '@pkgjs/parseargs@0.11.0':
+    optional: true
+
+  '@pkgr/core@0.1.1': {}
+
+  '@rollup/plugin-commonjs@28.0.0(rollup@4.24.0)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      commondir: 1.0.1
+      estree-walker: 2.0.2
+      fdir: 6.4.0(picomatch@2.3.1)
+      is-reference: 1.2.1
+      magic-string: 0.30.11
+      picomatch: 2.3.1
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/plugin-node-resolve@15.3.0(rollup@4.24.0)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      '@types/resolve': 1.20.2
+      deepmerge: 4.3.1
+      is-module: 1.0.0
+      resolve: 1.22.8
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/plugin-typescript@12.1.0(rollup@4.24.0)(tslib@2.7.0)(typescript@5.6.2)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      resolve: 1.22.8
+      typescript: 5.6.2
+    optionalDependencies:
+      rollup: 4.24.0
+      tslib: 2.7.0
+
+  '@rollup/pluginutils@5.1.2(rollup@4.24.0)':
+    dependencies:
+      '@types/estree': 1.0.6
+      estree-walker: 2.0.2
+      picomatch: 2.3.1
+    optionalDependencies:
+      rollup: 4.24.0
+
+  '@rollup/rollup-android-arm-eabi@4.24.0':
+    optional: true
+
+  '@rollup/rollup-android-arm64@4.24.0':
+    optional: true
+
+  '@rollup/rollup-darwin-arm64@4.24.0':
+    optional: true
+
+  '@rollup/rollup-darwin-x64@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm-gnueabihf@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm-musleabihf@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm64-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-arm64-musl@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-powerpc64le-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-riscv64-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-s390x-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-x64-gnu@4.24.0':
+    optional: true
+
+  '@rollup/rollup-linux-x64-musl@4.24.0':
+    optional: true
+
+  '@rollup/rollup-win32-arm64-msvc@4.24.0':
+    optional: true
+
+  '@rollup/rollup-win32-ia32-msvc@4.24.0':
+    optional: true
+
+  '@rollup/rollup-win32-x64-msvc@4.24.0':
+    optional: true
+
+  '@shikijs/core@1.21.1':
+    dependencies:
+      '@shikijs/engine-javascript': 1.21.1
+      '@shikijs/engine-oniguruma': 1.21.1
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+      '@types/hast': 3.0.4
+      hast-util-to-html: 9.0.3
+
+  '@shikijs/engine-javascript@1.21.1':
+    dependencies:
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+      oniguruma-to-js: 0.4.3
+
+  '@shikijs/engine-oniguruma@1.21.1':
+    dependencies:
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+
+  '@shikijs/types@1.21.1':
+    dependencies:
+      '@shikijs/vscode-textmate': 9.3.0
+      '@types/hast': 3.0.4
+
+  '@shikijs/vscode-textmate@9.3.0': {}
+
+  '@sinclair/typebox@0.27.8': {}
+
+  '@tsconfig/node10@1.0.11': {}
+
+  '@tsconfig/node12@1.0.11': {}
+
+  '@tsconfig/node14@1.0.3': {}
+
+  '@tsconfig/node16@1.0.4': {}
+
+  '@types/estree@1.0.6': {}
+
+  '@types/hast@3.0.4':
+    dependencies:
+      '@types/unist': 3.0.3
+
+  '@types/istanbul-lib-coverage@2.0.6': {}
+
+  '@types/istanbul-lib-report@3.0.3':
+    dependencies:
+      '@types/istanbul-lib-coverage': 2.0.6
+
+  '@types/istanbul-reports@3.0.4':
+    dependencies:
+      '@types/istanbul-lib-report': 3.0.3
+
+  '@types/jest@29.5.13':
+    dependencies:
+      expect: 29.7.0
+      pretty-format: 29.7.0
+
+  '@types/json-schema@7.0.15': {}
+
+  '@types/mdast@4.0.4':
+    dependencies:
+      '@types/unist': 3.0.3
+
+  '@types/minimist@1.2.5': {}
+
+  '@types/node@22.7.4':
+    dependencies:
+      undici-types: 6.19.8
+
+  '@types/normalize-package-data@2.4.4': {}
+
+  '@types/resolve@1.20.2': {}
+
+  '@types/stack-utils@2.0.3': {}
+
+  '@types/unist@3.0.3': {}
+
+  '@types/yargs-parser@21.0.3': {}
+
+  '@types/yargs@17.0.33':
+    dependencies:
+      '@types/yargs-parser': 21.0.3
+
+  '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2)':
+    dependencies:
+      '@eslint-community/regexpp': 4.11.1
+      '@typescript-eslint/parser': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
+      '@typescript-eslint/scope-manager': 8.8.0
+      '@typescript-eslint/type-utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
+      '@typescript-eslint/visitor-keys': 8.8.0
+      eslint: 9.12.0
+      graphemer: 1.4.0
+      ignore: 5.3.2
+      natural-compare: 1.4.0
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/scope-manager': 8.8.0
+      '@typescript-eslint/types': 8.8.0
+      '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
+      '@typescript-eslint/visitor-keys': 8.8.0
+      debug: 4.3.7
+      eslint: 9.12.0
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/scope-manager@8.8.0':
+    dependencies:
+      '@typescript-eslint/types': 8.8.0
+      '@typescript-eslint/visitor-keys': 8.8.0
+
+  '@typescript-eslint/type-utils@8.8.0(eslint@9.12.0)(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
+      debug: 4.3.7
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - eslint
+      - supports-color
+
+  '@typescript-eslint/types@8.8.0': {}
+
+  '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/types': 8.8.0
+      '@typescript-eslint/visitor-keys': 8.8.0
+      debug: 4.3.7
+      fast-glob: 3.3.2
+      is-glob: 4.0.3
+      minimatch: 9.0.5
+      semver: 7.6.3
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/utils@8.8.0(eslint@9.12.0)(typescript@5.6.2)':
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
+      '@typescript-eslint/scope-manager': 8.8.0
+      '@typescript-eslint/types': 8.8.0
+      '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
+      eslint: 9.12.0
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+
+  '@typescript-eslint/visitor-keys@8.8.0':
+    dependencies:
+      '@typescript-eslint/types': 8.8.0
+      eslint-visitor-keys: 3.4.3
+
+  '@ungap/structured-clone@1.2.0': {}
+
+  '@vitest/coverage-v8@2.1.2(vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1))':
+    dependencies:
+      '@ampproject/remapping': 2.3.0
+      '@bcoe/v8-coverage': 0.2.3
+      debug: 4.3.7
+      istanbul-lib-coverage: 3.2.2
+      istanbul-lib-report: 3.0.1
+      istanbul-lib-source-maps: 5.0.6
+      istanbul-reports: 3.1.7
+      magic-string: 0.30.11
+      magicast: 0.3.5
+      std-env: 3.7.0
+      test-exclude: 7.0.1
+      tinyrainbow: 1.2.0
+      vitest: 2.1.2(@types/node@22.7.4)(terser@5.34.1)
+    transitivePeerDependencies:
+      - supports-color
+
+  '@vitest/expect@2.1.2':
+    dependencies:
+      '@vitest/spy': 2.1.2
+      '@vitest/utils': 2.1.2
+      chai: 5.1.1
+      tinyrainbow: 1.2.0
+
+  '@vitest/mocker@2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))':
+    dependencies:
+      '@vitest/spy': 2.1.2
+      estree-walker: 3.0.3
+      magic-string: 0.30.11
+    optionalDependencies:
+      vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1)
+
+  '@vitest/pretty-format@2.1.2':
+    dependencies:
+      tinyrainbow: 1.2.0
+
+  '@vitest/runner@2.1.2':
+    dependencies:
+      '@vitest/utils': 2.1.2
+      pathe: 1.1.2
+
+  '@vitest/snapshot@2.1.2':
+    dependencies:
+      '@vitest/pretty-format': 2.1.2
+      magic-string: 0.30.11
+      pathe: 1.1.2
+
+  '@vitest/spy@2.1.2':
+    dependencies:
+      tinyspy: 3.0.2
+
+  '@vitest/utils@2.1.2':
+    dependencies:
+      '@vitest/pretty-format': 2.1.2
+      loupe: 3.1.1
+      tinyrainbow: 1.2.0
+
+  JSONStream@1.3.5:
+    dependencies:
+      jsonparse: 1.3.1
+      through: 2.3.8
+
+  acorn-jsx@5.3.2(acorn@8.12.1):
+    dependencies:
+      acorn: 8.12.1
+
+  acorn-walk@8.3.4:
+    dependencies:
+      acorn: 8.12.1
+
+  acorn@8.12.1: {}
+
+  add-stream@1.0.0: {}
+
+  ajv@6.12.6:
+    dependencies:
+      fast-deep-equal: 3.1.3
+      fast-json-stable-stringify: 2.1.0
+      json-schema-traverse: 0.4.1
+      uri-js: 4.4.1
+
+  ansi-regex@5.0.1: {}
+
+  ansi-regex@6.1.0: {}
+
+  ansi-styles@3.2.1:
+    dependencies:
+      color-convert: 1.9.3
+
+  ansi-styles@4.3.0:
+    dependencies:
+      color-convert: 2.0.1
+
+  ansi-styles@5.2.0: {}
+
+  ansi-styles@6.2.1: {}
+
+  arg@4.1.3: {}
+
+  argparse@2.0.1: {}
+
+  array-ify@1.0.0: {}
+
+  arrify@1.0.1: {}
+
+  assertion-error@2.0.1: {}
+
+  balanced-match@1.0.2: {}
+
+  brace-expansion@1.1.11:
+    dependencies:
+      balanced-match: 1.0.2
+      concat-map: 0.0.1
+
+  brace-expansion@2.0.1:
+    dependencies:
+      balanced-match: 1.0.2
+
+  braces@3.0.3:
+    dependencies:
+      fill-range: 7.1.1
+
+  buffer-from@1.1.2: {}
+
+  cac@6.7.14: {}
+
+  callsites@3.1.0: {}
+
+  camelcase-keys@6.2.2:
+    dependencies:
+      camelcase: 5.3.1
+      map-obj: 4.3.0
+      quick-lru: 4.0.1
+
+  camelcase@5.3.1: {}
+
+  ccount@2.0.1: {}
+
+  chai@5.1.1:
+    dependencies:
+      assertion-error: 2.0.1
+      check-error: 2.1.1
+      deep-eql: 5.0.2
+      loupe: 3.1.1
+      pathval: 2.0.0
+
+  chalk@2.4.2:
+    dependencies:
+      ansi-styles: 3.2.1
+      escape-string-regexp: 1.0.5
+      supports-color: 5.5.0
+
+  chalk@4.1.2:
+    dependencies:
+      ansi-styles: 4.3.0
+      supports-color: 7.2.0
+
+  character-entities-html4@2.1.0: {}
+
+  character-entities-legacy@3.0.0: {}
+
+  check-error@2.1.1: {}
+
+  ci-info@3.9.0: {}
+
+  cliui@7.0.4:
+    dependencies:
+      string-width: 4.2.3
+      strip-ansi: 6.0.1
+      wrap-ansi: 7.0.0
+
+  color-convert@1.9.3:
+    dependencies:
+      color-name: 1.1.3
+
+  color-convert@2.0.1:
+    dependencies:
+      color-name: 1.1.4
+
+  color-name@1.1.3: {}
+
+  color-name@1.1.4: {}
+
+  comma-separated-tokens@2.0.3: {}
+
+  commander@2.20.3: {}
+
+  commondir@1.0.1: {}
+
+  compare-func@2.0.0:
+    dependencies:
+      array-ify: 1.0.0
+      dot-prop: 5.3.0
+
+  concat-map@0.0.1: {}
+
+  concat-stream@2.0.0:
+    dependencies:
+      buffer-from: 1.1.2
+      inherits: 2.0.4
+      readable-stream: 3.6.2
+      typedarray: 0.0.6
+
+  conventional-changelog-angular@5.0.13:
+    dependencies:
+      compare-func: 2.0.0
+      q: 1.5.1
+
+  conventional-changelog-atom@2.0.8:
+    dependencies:
+      q: 1.5.1
+
+  conventional-changelog-codemirror@2.0.8:
+    dependencies:
+      q: 1.5.1
+
+  conventional-changelog-config-spec@2.1.0: {}
+
+  conventional-changelog-conventionalcommits@4.6.3:
+    dependencies:
+      compare-func: 2.0.0
+      lodash: 4.17.21
+      q: 1.5.1
+
+  conventional-changelog-core@4.2.4:
+    dependencies:
+      add-stream: 1.0.0
+      conventional-changelog-writer: 5.0.1
+      conventional-commits-parser: 3.2.4
+      dateformat: 3.0.3
+      get-pkg-repo: 4.2.1
+      git-raw-commits: 2.0.11
+      git-remote-origin-url: 2.0.0
+      git-semver-tags: 4.1.1
+      lodash: 4.17.21
+      normalize-package-data: 3.0.3
+      q: 1.5.1
+      read-pkg: 3.0.0
+      read-pkg-up: 3.0.0
+      through2: 4.0.2
+
+  conventional-changelog-ember@2.0.9:
+    dependencies:
+      q: 1.5.1
+
+  conventional-changelog-eslint@3.0.9:
+    dependencies:
+      q: 1.5.1
+
+  conventional-changelog-express@2.0.6:
+    dependencies:
+      q: 1.5.1
+
+  conventional-changelog-jquery@3.0.11:
+    dependencies:
+      q: 1.5.1
+
+  conventional-changelog-jshint@2.0.9:
+    dependencies:
+      compare-func: 2.0.0
+      q: 1.5.1
+
+  conventional-changelog-preset-loader@2.3.4: {}
+
+  conventional-changelog-writer@5.0.1:
+    dependencies:
+      conventional-commits-filter: 2.0.7
+      dateformat: 3.0.3
+      handlebars: 4.7.8
+      json-stringify-safe: 5.0.1
+      lodash: 4.17.21
+      meow: 8.1.2
+      semver: 6.3.1
+      split: 1.0.1
+      through2: 4.0.2
+
+  conventional-changelog@3.1.25:
+    dependencies:
+      conventional-changelog-angular: 5.0.13
+      conventional-changelog-atom: 2.0.8
+      conventional-changelog-codemirror: 2.0.8
+      conventional-changelog-conventionalcommits: 4.6.3
+      conventional-changelog-core: 4.2.4
+      conventional-changelog-ember: 2.0.9
+      conventional-changelog-eslint: 3.0.9
+      conventional-changelog-express: 2.0.6
+      conventional-changelog-jquery: 3.0.11
+      conventional-changelog-jshint: 2.0.9
+      conventional-changelog-preset-loader: 2.3.4
+
+  conventional-commits-filter@2.0.7:
+    dependencies:
+      lodash.ismatch: 4.4.0
+      modify-values: 1.0.1
+
+  conventional-commits-parser@3.2.4:
+    dependencies:
+      JSONStream: 1.3.5
+      is-text-path: 1.0.1
+      lodash: 4.17.21
+      meow: 8.1.2
+      split2: 3.2.2
+      through2: 4.0.2
+
+  conventional-recommended-bump@6.1.0:
+    dependencies:
+      concat-stream: 2.0.0
+      conventional-changelog-preset-loader: 2.3.4
+      conventional-commits-filter: 2.0.7
+      conventional-commits-parser: 3.2.4
+      git-raw-commits: 2.0.11
+      git-semver-tags: 4.1.1
+      meow: 8.1.2
+      q: 1.5.1
+
+  copyfiles@2.4.1:
+    dependencies:
       glob: 7.2.3
-      graceful-fs: 4.2.10
-      jest-circus: 29.3.1
-      jest-environment-node: 29.3.1
-      jest-get-type: 29.2.0
-      jest-regex-util: 29.2.0
-      jest-resolve: 29.3.1
-      jest-runner: 29.3.1
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      micromatch: 4.0.5
-      parse-json: 5.2.0
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      strip-json-comments: 3.1.1
-      ts-node: 10.9.1_st2htz3eb6effj72w7hhhfw6hu
+      minimatch: 3.1.2
+      mkdirp: 1.0.4
+      noms: 0.0.0
+      through2: 2.0.5
+      untildify: 4.0.0
+      yargs: 16.2.0
+
+  core-util-is@1.0.3: {}
+
+  create-require@1.1.1: {}
+
+  cross-spawn@7.0.3:
+    dependencies:
+      path-key: 3.1.1
+      shebang-command: 2.0.0
+      which: 2.0.2
+
+  dargs@7.0.0: {}
+
+  dateformat@3.0.3: {}
+
+  debug@4.3.7:
+    dependencies:
+      ms: 2.1.3
+
+  decamelize-keys@1.1.1:
+    dependencies:
+      decamelize: 1.2.0
+      map-obj: 1.0.1
+
+  decamelize@1.2.0: {}
+
+  deep-eql@5.0.2: {}
+
+  deep-is@0.1.4: {}
+
+  deepmerge@4.3.1: {}
+
+  dequal@2.0.3: {}
+
+  detect-indent@6.1.0: {}
+
+  detect-newline@3.1.0: {}
+
+  devlop@1.1.0:
+    dependencies:
+      dequal: 2.0.3
+
+  diff-sequences@29.6.3: {}
+
+  diff@4.0.2: {}
+
+  dot-prop@5.3.0:
+    dependencies:
+      is-obj: 2.0.0
+
+  dotgitignore@2.1.0:
+    dependencies:
+      find-up: 3.0.0
+      minimatch: 3.1.2
+
+  eastasianwidth@0.2.0: {}
+
+  emoji-regex@8.0.0: {}
+
+  emoji-regex@9.2.2: {}
+
+  entities@4.5.0: {}
+
+  error-ex@1.3.2:
+    dependencies:
+      is-arrayish: 0.2.1
+
+  esbuild@0.21.5:
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.21.5
+      '@esbuild/android-arm': 0.21.5
+      '@esbuild/android-arm64': 0.21.5
+      '@esbuild/android-x64': 0.21.5
+      '@esbuild/darwin-arm64': 0.21.5
+      '@esbuild/darwin-x64': 0.21.5
+      '@esbuild/freebsd-arm64': 0.21.5
+      '@esbuild/freebsd-x64': 0.21.5
+      '@esbuild/linux-arm': 0.21.5
+      '@esbuild/linux-arm64': 0.21.5
+      '@esbuild/linux-ia32': 0.21.5
+      '@esbuild/linux-loong64': 0.21.5
+      '@esbuild/linux-mips64el': 0.21.5
+      '@esbuild/linux-ppc64': 0.21.5
+      '@esbuild/linux-riscv64': 0.21.5
+      '@esbuild/linux-s390x': 0.21.5
+      '@esbuild/linux-x64': 0.21.5
+      '@esbuild/netbsd-x64': 0.21.5
+      '@esbuild/openbsd-x64': 0.21.5
+      '@esbuild/sunos-x64': 0.21.5
+      '@esbuild/win32-arm64': 0.21.5
+      '@esbuild/win32-ia32': 0.21.5
+      '@esbuild/win32-x64': 0.21.5
+
+  escalade@3.2.0: {}
+
+  escape-string-regexp@1.0.5: {}
+
+  escape-string-regexp@2.0.0: {}
+
+  escape-string-regexp@4.0.0: {}
+
+  eslint-config-prettier@9.1.0(eslint@9.12.0):
+    dependencies:
+      eslint: 9.12.0
+
+  eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.3.3):
+    dependencies:
+      eslint: 9.12.0
+      prettier: 3.3.3
+      prettier-linter-helpers: 1.0.0
+      synckit: 0.9.1
+    optionalDependencies:
+      eslint-config-prettier: 9.1.0(eslint@9.12.0)
+
+  eslint-scope@8.1.0:
+    dependencies:
+      esrecurse: 4.3.0
+      estraverse: 5.3.0
+
+  eslint-visitor-keys@3.4.3: {}
+
+  eslint-visitor-keys@4.1.0: {}
+
+  eslint@9.12.0:
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
+      '@eslint-community/regexpp': 4.11.1
+      '@eslint/config-array': 0.18.0
+      '@eslint/core': 0.6.0
+      '@eslint/eslintrc': 3.1.0
+      '@eslint/js': 9.12.0
+      '@eslint/plugin-kit': 0.2.0
+      '@humanfs/node': 0.16.5
+      '@humanwhocodes/module-importer': 1.0.1
+      '@humanwhocodes/retry': 0.3.1
+      '@types/estree': 1.0.6
+      '@types/json-schema': 7.0.15
+      ajv: 6.12.6
+      chalk: 4.1.2
+      cross-spawn: 7.0.3
+      debug: 4.3.7
+      escape-string-regexp: 4.0.0
+      eslint-scope: 8.1.0
+      eslint-visitor-keys: 4.1.0
+      espree: 10.2.0
+      esquery: 1.6.0
+      esutils: 2.0.3
+      fast-deep-equal: 3.1.3
+      file-entry-cache: 8.0.0
+      find-up: 5.0.0
+      glob-parent: 6.0.2
+      ignore: 5.3.2
+      imurmurhash: 0.1.4
+      is-glob: 4.0.3
+      json-stable-stringify-without-jsonify: 1.0.1
+      lodash.merge: 4.6.2
+      minimatch: 3.1.2
+      natural-compare: 1.4.0
+      optionator: 0.9.4
+      text-table: 0.2.0
     transitivePeerDependencies:
       - supports-color
-    dev: true
 
-  /jest-diff/29.3.1:
-    resolution: {integrity: sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  espree@10.2.0:
+    dependencies:
+      acorn: 8.12.1
+      acorn-jsx: 5.3.2(acorn@8.12.1)
+      eslint-visitor-keys: 4.1.0
+
+  esquery@1.6.0:
+    dependencies:
+      estraverse: 5.3.0
+
+  esrecurse@4.3.0:
+    dependencies:
+      estraverse: 5.3.0
+
+  estraverse@5.3.0: {}
+
+  estree-walker@2.0.2: {}
+
+  estree-walker@3.0.3:
+    dependencies:
+      '@types/estree': 1.0.6
+
+  esutils@2.0.3: {}
+
+  expect@29.7.0:
+    dependencies:
+      '@jest/expect-utils': 29.7.0
+      jest-get-type: 29.6.3
+      jest-matcher-utils: 29.7.0
+      jest-message-util: 29.7.0
+      jest-util: 29.7.0
+
+  fast-deep-equal@3.1.3: {}
+
+  fast-diff@1.3.0: {}
+
+  fast-glob@3.3.2:
+    dependencies:
+      '@nodelib/fs.stat': 2.0.5
+      '@nodelib/fs.walk': 1.2.8
+      glob-parent: 5.1.2
+      merge2: 1.4.1
+      micromatch: 4.0.8
+
+  fast-json-stable-stringify@2.1.0: {}
+
+  fast-levenshtein@2.0.6: {}
+
+  fastq@1.17.1:
+    dependencies:
+      reusify: 1.0.4
+
+  fdir@6.4.0(picomatch@2.3.1):
+    optionalDependencies:
+      picomatch: 2.3.1
+
+  figures@3.2.0:
+    dependencies:
+      escape-string-regexp: 1.0.5
+
+  file-entry-cache@8.0.0:
+    dependencies:
+      flat-cache: 4.0.1
+
+  fill-range@7.1.1:
+    dependencies:
+      to-regex-range: 5.0.1
+
+  find-up@2.1.0:
+    dependencies:
+      locate-path: 2.0.0
+
+  find-up@3.0.0:
+    dependencies:
+      locate-path: 3.0.0
+
+  find-up@4.1.0:
+    dependencies:
+      locate-path: 5.0.0
+      path-exists: 4.0.0
+
+  find-up@5.0.0:
+    dependencies:
+      locate-path: 6.0.0
+      path-exists: 4.0.0
+
+  flat-cache@4.0.1:
+    dependencies:
+      flatted: 3.3.1
+      keyv: 4.5.4
+
+  flatted@3.3.1: {}
+
+  foreground-child@3.3.0:
+    dependencies:
+      cross-spawn: 7.0.3
+      signal-exit: 4.1.0
+
+  fs.realpath@1.0.0: {}
+
+  fsevents@2.3.3:
+    optional: true
+
+  function-bind@1.1.2: {}
+
+  get-caller-file@2.0.5: {}
+
+  get-func-name@2.0.2: {}
+
+  get-pkg-repo@4.2.1:
+    dependencies:
+      '@hutson/parse-repository-url': 3.0.2
+      hosted-git-info: 4.1.0
+      through2: 2.0.5
+      yargs: 16.2.0
+
+  git-raw-commits@2.0.11:
+    dependencies:
+      dargs: 7.0.0
+      lodash: 4.17.21
+      meow: 8.1.2
+      split2: 3.2.2
+      through2: 4.0.2
+
+  git-remote-origin-url@2.0.0:
+    dependencies:
+      gitconfiglocal: 1.0.0
+      pify: 2.3.0
+
+  git-semver-tags@4.1.1:
+    dependencies:
+      meow: 8.1.2
+      semver: 6.3.1
+
+  gitconfiglocal@1.0.0:
+    dependencies:
+      ini: 1.3.8
+
+  glob-parent@5.1.2:
+    dependencies:
+      is-glob: 4.0.3
+
+  glob-parent@6.0.2:
+    dependencies:
+      is-glob: 4.0.3
+
+  glob@10.4.5:
+    dependencies:
+      foreground-child: 3.3.0
+      jackspeak: 3.4.3
+      minimatch: 9.0.5
+      minipass: 7.1.2
+      package-json-from-dist: 1.0.1
+      path-scurry: 1.11.1
+
+  glob@11.0.0:
+    dependencies:
+      foreground-child: 3.3.0
+      jackspeak: 4.0.2
+      minimatch: 10.0.1
+      minipass: 7.1.2
+      package-json-from-dist: 1.0.1
+      path-scurry: 2.0.0
+
+  glob@7.2.3:
+    dependencies:
+      fs.realpath: 1.0.0
+      inflight: 1.0.6
+      inherits: 2.0.4
+      minimatch: 3.1.2
+      once: 1.4.0
+      path-is-absolute: 1.0.1
+
+  globals@14.0.0: {}
+
+  graceful-fs@4.2.11: {}
+
+  graphemer@1.4.0: {}
+
+  handlebars@4.7.8:
+    dependencies:
+      minimist: 1.2.8
+      neo-async: 2.6.2
+      source-map: 0.6.1
+      wordwrap: 1.0.0
+    optionalDependencies:
+      uglify-js: 3.19.3
+
+  hard-rejection@2.1.0: {}
+
+  has-flag@3.0.0: {}
+
+  has-flag@4.0.0: {}
+
+  hasown@2.0.2:
     dependencies:
-      chalk: 4.1.2
-      diff-sequences: 29.3.1
-      jest-get-type: 29.2.0
-      pretty-format: 29.3.1
-    dev: true
+      function-bind: 1.1.2
 
-  /jest-docblock/29.2.0:
-    resolution: {integrity: sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  hast-util-to-html@9.0.3:
     dependencies:
-      detect-newline: 3.1.0
-    dev: true
+      '@types/hast': 3.0.4
+      '@types/unist': 3.0.3
+      ccount: 2.0.1
+      comma-separated-tokens: 2.0.3
+      hast-util-whitespace: 3.0.0
+      html-void-elements: 3.0.0
+      mdast-util-to-hast: 13.2.0
+      property-information: 6.5.0
+      space-separated-tokens: 2.0.2
+      stringify-entities: 4.0.4
+      zwitch: 2.0.4
 
-  /jest-each/29.3.1:
-    resolution: {integrity: sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  hast-util-whitespace@3.0.0:
     dependencies:
-      '@jest/types': 29.3.1
-      chalk: 4.1.2
-      jest-get-type: 29.2.0
-      jest-util: 29.3.1
-      pretty-format: 29.3.1
-    dev: true
+      '@types/hast': 3.0.4
 
-  /jest-environment-node/29.3.1:
-    resolution: {integrity: sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  hosted-git-info@2.8.9: {}
+
+  hosted-git-info@4.1.0:
     dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/fake-timers': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      jest-mock: 29.3.1
-      jest-util: 29.3.1
-    dev: true
+      lru-cache: 6.0.0
 
-  /jest-get-type/29.2.0:
-    resolution: {integrity: sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: true
+  html-escaper@2.0.2: {}
 
-  /jest-haste-map/29.3.1:
-    resolution: {integrity: sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  html-void-elements@3.0.0: {}
+
+  ignore@5.3.2: {}
+
+  import-fresh@3.3.0:
     dependencies:
-      '@jest/types': 29.3.1
-      '@types/graceful-fs': 4.1.5
-      '@types/node': 16.0.0
-      anymatch: 3.1.2
-      fb-watchman: 2.0.2
-      graceful-fs: 4.2.10
-      jest-regex-util: 29.2.0
-      jest-util: 29.3.1
-      jest-worker: 29.3.1
-      micromatch: 4.0.5
-      walker: 1.0.8
-    optionalDependencies:
-      fsevents: 2.3.2
-    dev: true
+      parent-module: 1.0.1
+      resolve-from: 4.0.0
 
-  /jest-leak-detector/29.3.1:
-    resolution: {integrity: sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  imurmurhash@0.1.4: {}
+
+  indent-string@4.0.0: {}
+
+  inflight@1.0.6:
     dependencies:
-      jest-get-type: 29.2.0
-      pretty-format: 29.3.1
-    dev: true
+      once: 1.4.0
+      wrappy: 1.0.2
 
-  /jest-matcher-utils/29.3.1:
-    resolution: {integrity: sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  inherits@2.0.4: {}
+
+  ini@1.3.8: {}
+
+  is-arrayish@0.2.1: {}
+
+  is-core-module@2.15.1:
     dependencies:
-      chalk: 4.1.2
-      jest-diff: 29.3.1
-      jest-get-type: 29.2.0
-      pretty-format: 29.3.1
-    dev: true
+      hasown: 2.0.2
 
-  /jest-message-util/29.3.1:
-    resolution: {integrity: sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  is-extglob@2.1.1: {}
+
+  is-fullwidth-code-point@3.0.0: {}
+
+  is-glob@4.0.3:
     dependencies:
-      '@babel/code-frame': 7.18.6
-      '@jest/types': 29.3.1
-      '@types/stack-utils': 2.0.1
-      chalk: 4.1.2
-      graceful-fs: 4.2.10
-      micromatch: 4.0.5
-      pretty-format: 29.3.1
-      slash: 3.0.0
-      stack-utils: 2.0.6
-    dev: true
+      is-extglob: 2.1.1
 
-  /jest-mock/29.3.1:
-    resolution: {integrity: sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  is-module@1.0.0: {}
+
+  is-number@7.0.0: {}
+
+  is-obj@2.0.0: {}
+
+  is-plain-obj@1.1.0: {}
+
+  is-reference@1.2.1:
     dependencies:
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      jest-util: 29.3.1
-    dev: true
+      '@types/estree': 1.0.6
 
-  /jest-pnp-resolver/1.2.2_jest-resolve@29.3.1:
-    resolution: {integrity: sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==}
-    engines: {node: '>=6'}
-    peerDependencies:
-      jest-resolve: '*'
-    peerDependenciesMeta:
-      jest-resolve:
-        optional: true
+  is-text-path@1.0.1:
     dependencies:
-      jest-resolve: 29.3.1
-    dev: true
+      text-extensions: 1.9.0
 
-  /jest-regex-util/29.2.0:
-    resolution: {integrity: sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dev: true
+  isarray@0.0.1: {}
 
-  /jest-resolve-dependencies/29.3.1:
-    resolution: {integrity: sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  isarray@1.0.0: {}
+
+  isexe@2.0.0: {}
+
+  istanbul-lib-coverage@3.2.2: {}
+
+  istanbul-lib-report@3.0.1:
+    dependencies:
+      istanbul-lib-coverage: 3.2.2
+      make-dir: 4.0.0
+      supports-color: 7.2.0
+
+  istanbul-lib-source-maps@5.0.6:
     dependencies:
-      jest-regex-util: 29.2.0
-      jest-snapshot: 29.3.1
+      '@jridgewell/trace-mapping': 0.3.25
+      debug: 4.3.7
+      istanbul-lib-coverage: 3.2.2
     transitivePeerDependencies:
       - supports-color
-    dev: true
 
-  /jest-resolve/29.3.1:
-    resolution: {integrity: sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  istanbul-reports@3.1.7:
     dependencies:
-      chalk: 4.1.2
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      jest-pnp-resolver: 1.2.2_jest-resolve@29.3.1
-      jest-util: 29.3.1
-      jest-validate: 29.3.1
-      resolve: 1.22.1
-      resolve.exports: 1.1.0
-      slash: 3.0.0
-    dev: true
+      html-escaper: 2.0.2
+      istanbul-lib-report: 3.0.1
 
-  /jest-runner/29.3.1:
-    resolution: {integrity: sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  jackspeak@3.4.3:
     dependencies:
-      '@jest/console': 29.3.1
-      '@jest/environment': 29.3.1
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      emittery: 0.13.1
-      graceful-fs: 4.2.10
-      jest-docblock: 29.2.0
-      jest-environment-node: 29.3.1
-      jest-haste-map: 29.3.1
-      jest-leak-detector: 29.3.1
-      jest-message-util: 29.3.1
-      jest-resolve: 29.3.1
-      jest-runtime: 29.3.1
-      jest-util: 29.3.1
-      jest-watcher: 29.3.1
-      jest-worker: 29.3.1
-      p-limit: 3.1.0
-      source-map-support: 0.5.13
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      '@isaacs/cliui': 8.0.2
+    optionalDependencies:
+      '@pkgjs/parseargs': 0.11.0
 
-  /jest-runtime/29.3.1:
-    resolution: {integrity: sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  jackspeak@4.0.2:
     dependencies:
-      '@jest/environment': 29.3.1
-      '@jest/fake-timers': 29.3.1
-      '@jest/globals': 29.3.1
-      '@jest/source-map': 29.2.0
-      '@jest/test-result': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      chalk: 4.1.2
-      cjs-module-lexer: 1.2.2
-      collect-v8-coverage: 1.0.1
-      glob: 7.2.3
-      graceful-fs: 4.2.10
-      jest-haste-map: 29.3.1
-      jest-message-util: 29.3.1
-      jest-mock: 29.3.1
-      jest-regex-util: 29.2.0
-      jest-resolve: 29.3.1
-      jest-snapshot: 29.3.1
-      jest-util: 29.3.1
-      slash: 3.0.0
-      strip-bom: 4.0.0
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      '@isaacs/cliui': 8.0.2
 
-  /jest-snapshot/29.3.1:
-    resolution: {integrity: sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  jest-diff@29.7.0:
     dependencies:
-      '@babel/core': 7.20.2
-      '@babel/generator': 7.20.4
-      '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.2
-      '@babel/plugin-syntax-typescript': 7.20.0_@babel+core@7.20.2
-      '@babel/traverse': 7.20.1
-      '@babel/types': 7.20.2
-      '@jest/expect-utils': 29.3.1
-      '@jest/transform': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/babel__traverse': 7.18.2
-      '@types/prettier': 2.7.1
-      babel-preset-current-node-syntax: 1.0.1_@babel+core@7.20.2
       chalk: 4.1.2
-      expect: 29.3.1
-      graceful-fs: 4.2.10
-      jest-diff: 29.3.1
-      jest-get-type: 29.2.0
-      jest-haste-map: 29.3.1
-      jest-matcher-utils: 29.3.1
-      jest-message-util: 29.3.1
-      jest-util: 29.3.1
-      natural-compare: 1.4.0
-      pretty-format: 29.3.1
-      semver: 7.3.8
-    transitivePeerDependencies:
-      - supports-color
-    dev: true
+      diff-sequences: 29.6.3
+      jest-get-type: 29.6.3
+      pretty-format: 29.7.0
 
-  /jest-util/29.3.1:
-    resolution: {integrity: sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  jest-get-type@29.6.3: {}
+
+  jest-matcher-utils@29.7.0:
     dependencies:
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
       chalk: 4.1.2
-      ci-info: 3.6.1
-      graceful-fs: 4.2.10
-      picomatch: 2.3.1
-    dev: true
+      jest-diff: 29.7.0
+      jest-get-type: 29.6.3
+      pretty-format: 29.7.0
 
-  /jest-validate/29.3.1:
-    resolution: {integrity: sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  jest-message-util@29.7.0:
     dependencies:
-      '@jest/types': 29.3.1
-      camelcase: 6.3.0
+      '@babel/code-frame': 7.25.7
+      '@jest/types': 29.6.3
+      '@types/stack-utils': 2.0.3
       chalk: 4.1.2
-      jest-get-type: 29.2.0
-      leven: 3.1.0
-      pretty-format: 29.3.1
-    dev: true
+      graceful-fs: 4.2.11
+      micromatch: 4.0.8
+      pretty-format: 29.7.0
+      slash: 3.0.0
+      stack-utils: 2.0.6
 
-  /jest-watcher/29.3.1:
-    resolution: {integrity: sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  jest-util@29.7.0:
     dependencies:
-      '@jest/test-result': 29.3.1
-      '@jest/types': 29.3.1
-      '@types/node': 16.0.0
-      ansi-escapes: 4.3.2
+      '@jest/types': 29.6.3
+      '@types/node': 22.7.4
       chalk: 4.1.2
-      emittery: 0.13.1
-      jest-util: 29.3.1
-      string-length: 4.0.2
-    dev: true
+      ci-info: 3.9.0
+      graceful-fs: 4.2.11
+      picomatch: 2.3.1
 
-  /jest-worker/26.6.2:
-    resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
-    engines: {node: '>= 10.13.0'}
+  jest-worker@26.6.2:
     dependencies:
-      '@types/node': 16.0.0
+      '@types/node': 22.7.4
       merge-stream: 2.0.0
       supports-color: 7.2.0
-    dev: true
-
-  /jest-worker/29.3.1:
-    resolution: {integrity: sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    dependencies:
-      '@types/node': 16.0.0
-      jest-util: 29.3.1
-      merge-stream: 2.0.0
-      supports-color: 8.1.1
-    dev: true
-
-  /jest/29.3.1_qgsvtivhigskinhtkon55hue3i:
-    resolution: {integrity: sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    hasBin: true
-    peerDependencies:
-      node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
-    peerDependenciesMeta:
-      node-notifier:
-        optional: true
-    dependencies:
-      '@jest/core': 29.3.1_ts-node@10.9.1
-      '@jest/types': 29.3.1
-      import-local: 3.1.0
-      jest-cli: 29.3.1_qgsvtivhigskinhtkon55hue3i
-    transitivePeerDependencies:
-      - '@types/node'
-      - supports-color
-      - ts-node
-    dev: true
 
-  /js-sdsl/4.1.5:
-    resolution: {integrity: sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==}
-    dev: true
-
-  /js-tokens/4.0.0:
-    resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
-    dev: true
-
-  /js-yaml/3.14.1:
-    resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
-    hasBin: true
-    dependencies:
-      argparse: 1.0.10
-      esprima: 4.0.1
-    dev: true
+  js-tokens@4.0.0: {}
 
-  /js-yaml/4.1.0:
-    resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
-    hasBin: true
+  js-yaml@4.1.0:
     dependencies:
       argparse: 2.0.1
-    dev: true
-
-  /jsesc/2.5.2:
-    resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
-    engines: {node: '>=4'}
-    hasBin: true
-    dev: true
-
-  /json-parse-better-errors/1.0.2:
-    resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==}
-    dev: true
 
-  /json-parse-even-better-errors/2.3.1:
-    resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
-    dev: true
-
-  /json-schema-traverse/0.4.1:
-    resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
-    dev: true
+  json-buffer@3.0.1: {}
 
-  /json-stable-stringify-without-jsonify/1.0.1:
-    resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
-    dev: true
+  json-parse-better-errors@1.0.2: {}
 
-  /json-stringify-safe/5.0.1:
-    resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
-    dev: true
+  json-parse-even-better-errors@2.3.1: {}
 
-  /json5/2.2.1:
-    resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
-    engines: {node: '>=6'}
-    hasBin: true
-    dev: true
+  json-schema-traverse@0.4.1: {}
 
-  /jsonc-parser/3.2.0:
-    resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
-    dev: true
+  json-stable-stringify-without-jsonify@1.0.1: {}
 
-  /jsonparse/1.3.1:
-    resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
-    engines: {'0': node >= 0.2.0}
-    dev: true
+  json-stringify-safe@5.0.1: {}
 
-  /kind-of/6.0.3:
-    resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  jsonparse@1.3.1: {}
 
-  /kleur/3.0.3:
-    resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
-    engines: {node: '>=6'}
-    dev: true
+  keyv@4.5.4:
+    dependencies:
+      json-buffer: 3.0.1
 
-  /leven/3.1.0:
-    resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
-    engines: {node: '>=6'}
-    dev: true
+  kind-of@6.0.3: {}
 
-  /levn/0.4.1:
-    resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
-    engines: {node: '>= 0.8.0'}
+  levn@0.4.1:
     dependencies:
       prelude-ls: 1.2.1
       type-check: 0.4.0
-    dev: true
 
-  /lines-and-columns/1.2.4:
-    resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
-    dev: true
+  lines-and-columns@1.2.4: {}
 
-  /load-json-file/4.0.0:
-    resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==}
-    engines: {node: '>=4'}
+  linkify-it@5.0.0:
+    dependencies:
+      uc.micro: 2.1.0
+
+  load-json-file@4.0.0:
     dependencies:
-      graceful-fs: 4.2.10
+      graceful-fs: 4.2.11
       parse-json: 4.0.0
       pify: 3.0.0
       strip-bom: 3.0.0
-    dev: true
 
-  /locate-path/2.0.0:
-    resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
-    engines: {node: '>=4'}
+  locate-path@2.0.0:
     dependencies:
       p-locate: 2.0.0
       path-exists: 3.0.0
-    dev: true
 
-  /locate-path/3.0.0:
-    resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
-    engines: {node: '>=6'}
+  locate-path@3.0.0:
     dependencies:
       p-locate: 3.0.0
       path-exists: 3.0.0
-    dev: true
 
-  /locate-path/5.0.0:
-    resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
-    engines: {node: '>=8'}
+  locate-path@5.0.0:
     dependencies:
       p-locate: 4.1.0
-    dev: true
 
-  /locate-path/6.0.0:
-    resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
-    engines: {node: '>=10'}
+  locate-path@6.0.0:
     dependencies:
       p-locate: 5.0.0
-    dev: true
 
-  /lodash.ismatch/4.4.0:
-    resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
-    dev: true
+  lodash.ismatch@4.4.0: {}
 
-  /lodash.memoize/4.1.2:
-    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
-    dev: true
+  lodash.merge@4.6.2: {}
 
-  /lodash.merge/4.6.2:
-    resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
-    dev: true
+  lodash@4.17.21: {}
 
-  /lodash/4.17.21:
-    resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
-    dev: true
+  loupe@3.1.1:
+    dependencies:
+      get-func-name: 2.0.2
 
-  /lru-cache/6.0.0:
-    resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
-    engines: {node: '>=10'}
+  lru-cache@10.4.3: {}
+
+  lru-cache@11.0.1: {}
+
+  lru-cache@6.0.0:
     dependencies:
       yallist: 4.0.0
-    dev: true
 
-  /lunr/2.3.9:
-    resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
-    dev: true
+  lunr@2.3.9: {}
 
-  /magic-string/0.26.7:
-    resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
-    engines: {node: '>=12'}
+  magic-string@0.30.11:
     dependencies:
-      sourcemap-codec: 1.4.8
-    dev: true
+      '@jridgewell/sourcemap-codec': 1.5.0
 
-  /make-dir/3.1.0:
-    resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
-    engines: {node: '>=8'}
+  magicast@0.3.5:
     dependencies:
-      semver: 6.3.0
-    dev: true
+      '@babel/parser': 7.25.7
+      '@babel/types': 7.25.7
+      source-map-js: 1.2.1
 
-  /make-error/1.3.6:
-    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
-    dev: true
-
-  /makeerror/1.0.12:
-    resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+  make-dir@4.0.0:
     dependencies:
-      tmpl: 1.0.5
-    dev: true
+      semver: 7.6.3
 
-  /map-obj/1.0.1:
-    resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  make-error@1.3.6: {}
 
-  /map-obj/4.3.0:
-    resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
-    engines: {node: '>=8'}
-    dev: true
+  map-obj@1.0.1: {}
 
-  /marked/4.2.2:
-    resolution: {integrity: sha512-JjBTFTAvuTgANXx82a5vzK9JLSMoV6V3LBVn4Uhdso6t7vXrGx7g1Cd2r6NYSsxrYbQGFCMqBDhFHyK5q2UvcQ==}
-    engines: {node: '>= 12'}
-    hasBin: true
-    dev: true
+  map-obj@4.3.0: {}
 
-  /meow/8.1.2:
-    resolution: {integrity: sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==}
-    engines: {node: '>=10'}
+  markdown-it@14.1.0:
+    dependencies:
+      argparse: 2.0.1
+      entities: 4.5.0
+      linkify-it: 5.0.0
+      mdurl: 2.0.0
+      punycode.js: 2.3.1
+      uc.micro: 2.1.0
+
+  mdast-util-to-hast@13.2.0:
     dependencies:
-      '@types/minimist': 1.2.2
+      '@types/hast': 3.0.4
+      '@types/mdast': 4.0.4
+      '@ungap/structured-clone': 1.2.0
+      devlop: 1.1.0
+      micromark-util-sanitize-uri: 2.0.0
+      trim-lines: 3.0.1
+      unist-util-position: 5.0.0
+      unist-util-visit: 5.0.0
+      vfile: 6.0.3
+
+  mdurl@2.0.0: {}
+
+  meow@8.1.2:
+    dependencies:
+      '@types/minimist': 1.2.5
       camelcase-keys: 6.2.2
       decamelize-keys: 1.1.1
       hard-rejection: 2.1.0
@@ -3101,425 +3742,263 @@ packages:
       trim-newlines: 3.0.1
       type-fest: 0.18.1
       yargs-parser: 20.2.9
-    dev: true
 
-  /merge-stream/2.0.0:
-    resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
-    dev: true
+  merge-stream@2.0.0: {}
 
-  /merge2/1.4.1:
-    resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
-    engines: {node: '>= 8'}
-    dev: true
+  merge2@1.4.1: {}
 
-  /micromatch/4.0.5:
-    resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
-    engines: {node: '>=8.6'}
+  micromark-util-character@2.1.0:
+    dependencies:
+      micromark-util-symbol: 2.0.0
+      micromark-util-types: 2.0.0
+
+  micromark-util-encode@2.0.0: {}
+
+  micromark-util-sanitize-uri@2.0.0:
+    dependencies:
+      micromark-util-character: 2.1.0
+      micromark-util-encode: 2.0.0
+      micromark-util-symbol: 2.0.0
+
+  micromark-util-symbol@2.0.0: {}
+
+  micromark-util-types@2.0.0: {}
+
+  micromatch@4.0.8:
     dependencies:
-      braces: 3.0.2
+      braces: 3.0.3
       picomatch: 2.3.1
-    dev: true
 
-  /mimic-fn/2.1.0:
-    resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
-    engines: {node: '>=6'}
-    dev: true
+  min-indent@1.0.1: {}
 
-  /min-indent/1.0.1:
-    resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
-    engines: {node: '>=4'}
-    dev: true
+  minimatch@10.0.1:
+    dependencies:
+      brace-expansion: 2.0.1
 
-  /minimatch/3.1.2:
-    resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+  minimatch@3.1.2:
     dependencies:
       brace-expansion: 1.1.11
-    dev: true
 
-  /minimatch/5.1.0:
-    resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==}
-    engines: {node: '>=10'}
+  minimatch@9.0.5:
     dependencies:
       brace-expansion: 2.0.1
-    dev: true
 
-  /minimist-options/4.1.0:
-    resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
-    engines: {node: '>= 6'}
+  minimist-options@4.1.0:
     dependencies:
       arrify: 1.0.1
       is-plain-obj: 1.1.0
       kind-of: 6.0.3
-    dev: true
-
-  /minimist/1.2.7:
-    resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
-    dev: true
 
-  /mkdirp/1.0.4:
-    resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
-    engines: {node: '>=10'}
-    hasBin: true
-    dev: true
+  minimist@1.2.8: {}
 
-  /modify-values/1.0.1:
-    resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  minipass@7.1.2: {}
 
-  /ms/2.1.2:
-    resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
-    dev: true
+  mkdirp@1.0.4: {}
 
-  /natural-compare-lite/1.4.0:
-    resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
-    dev: true
+  modify-values@1.0.1: {}
 
-  /natural-compare/1.4.0:
-    resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
-    dev: true
+  ms@2.1.3: {}
 
-  /neo-async/2.6.2:
-    resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
-    dev: true
+  nanoid@3.3.7: {}
 
-  /node-int64/0.4.0:
-    resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==}
-    dev: true
+  natural-compare@1.4.0: {}
 
-  /node-releases/2.0.6:
-    resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
-    dev: true
+  neo-async@2.6.2: {}
 
-  /noms/0.0.0:
-    resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==}
+  noms@0.0.0:
     dependencies:
       inherits: 2.0.4
       readable-stream: 1.0.34
-    dev: true
 
-  /normalize-package-data/2.5.0:
-    resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+  normalize-package-data@2.5.0:
     dependencies:
       hosted-git-info: 2.8.9
-      resolve: 1.22.1
-      semver: 5.7.1
+      resolve: 1.22.8
+      semver: 5.7.2
       validate-npm-package-license: 3.0.4
-    dev: true
 
-  /normalize-package-data/3.0.3:
-    resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
-    engines: {node: '>=10'}
+  normalize-package-data@3.0.3:
     dependencies:
       hosted-git-info: 4.1.0
-      is-core-module: 2.11.0
-      semver: 7.3.8
+      is-core-module: 2.15.1
+      semver: 7.6.3
       validate-npm-package-license: 3.0.4
-    dev: true
-
-  /normalize-path/3.0.0:
-    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
-    engines: {node: '>=0.10.0'}
-    dev: true
-
-  /npm-run-path/4.0.1:
-    resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
-    engines: {node: '>=8'}
-    dependencies:
-      path-key: 3.1.1
-    dev: true
 
-  /once/1.4.0:
-    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+  once@1.4.0:
     dependencies:
       wrappy: 1.0.2
-    dev: true
 
-  /onetime/5.1.2:
-    resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
-    engines: {node: '>=6'}
+  oniguruma-to-js@0.4.3:
     dependencies:
-      mimic-fn: 2.1.0
-    dev: true
+      regex: 4.3.3
 
-  /optionator/0.9.1:
-    resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
-    engines: {node: '>= 0.8.0'}
+  optionator@0.9.4:
     dependencies:
       deep-is: 0.1.4
       fast-levenshtein: 2.0.6
       levn: 0.4.1
       prelude-ls: 1.2.1
       type-check: 0.4.0
-      word-wrap: 1.2.3
-    dev: true
+      word-wrap: 1.2.5
 
-  /p-limit/1.3.0:
-    resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
-    engines: {node: '>=4'}
+  p-limit@1.3.0:
     dependencies:
       p-try: 1.0.0
-    dev: true
 
-  /p-limit/2.3.0:
-    resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
-    engines: {node: '>=6'}
+  p-limit@2.3.0:
     dependencies:
       p-try: 2.2.0
-    dev: true
 
-  /p-limit/3.1.0:
-    resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
-    engines: {node: '>=10'}
+  p-limit@3.1.0:
     dependencies:
       yocto-queue: 0.1.0
-    dev: true
 
-  /p-locate/2.0.0:
-    resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
-    engines: {node: '>=4'}
+  p-locate@2.0.0:
     dependencies:
       p-limit: 1.3.0
-    dev: true
 
-  /p-locate/3.0.0:
-    resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
-    engines: {node: '>=6'}
+  p-locate@3.0.0:
     dependencies:
       p-limit: 2.3.0
-    dev: true
 
-  /p-locate/4.1.0:
-    resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
-    engines: {node: '>=8'}
+  p-locate@4.1.0:
     dependencies:
       p-limit: 2.3.0
-    dev: true
 
-  /p-locate/5.0.0:
-    resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
-    engines: {node: '>=10'}
+  p-locate@5.0.0:
     dependencies:
       p-limit: 3.1.0
-    dev: true
 
-  /p-try/1.0.0:
-    resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
-    engines: {node: '>=4'}
-    dev: true
+  p-try@1.0.0: {}
 
-  /p-try/2.2.0:
-    resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
-    engines: {node: '>=6'}
-    dev: true
+  p-try@2.2.0: {}
 
-  /parent-module/1.0.1:
-    resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
-    engines: {node: '>=6'}
+  package-json-from-dist@1.0.1: {}
+
+  parent-module@1.0.1:
     dependencies:
       callsites: 3.1.0
-    dev: true
 
-  /parse-json/4.0.0:
-    resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==}
-    engines: {node: '>=4'}
+  parse-json@4.0.0:
     dependencies:
       error-ex: 1.3.2
       json-parse-better-errors: 1.0.2
-    dev: true
 
-  /parse-json/5.2.0:
-    resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
-    engines: {node: '>=8'}
+  parse-json@5.2.0:
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.25.7
       error-ex: 1.3.2
       json-parse-even-better-errors: 2.3.1
       lines-and-columns: 1.2.4
-    dev: true
 
-  /path-exists/3.0.0:
-    resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
-    engines: {node: '>=4'}
-    dev: true
+  path-exists@3.0.0: {}
 
-  /path-exists/4.0.0:
-    resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
-    engines: {node: '>=8'}
-    dev: true
+  path-exists@4.0.0: {}
 
-  /path-is-absolute/1.0.1:
-    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  path-is-absolute@1.0.1: {}
 
-  /path-key/3.1.1:
-    resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
-    engines: {node: '>=8'}
-    dev: true
+  path-key@3.1.1: {}
 
-  /path-parse/1.0.7:
-    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
-    dev: true
+  path-parse@1.0.7: {}
 
-  /path-type/3.0.0:
-    resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
-    engines: {node: '>=4'}
+  path-scurry@1.11.1:
+    dependencies:
+      lru-cache: 10.4.3
+      minipass: 7.1.2
+
+  path-scurry@2.0.0:
+    dependencies:
+      lru-cache: 11.0.1
+      minipass: 7.1.2
+
+  path-type@3.0.0:
     dependencies:
       pify: 3.0.0
-    dev: true
 
-  /path-type/4.0.0:
-    resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
-    engines: {node: '>=8'}
-    dev: true
+  pathe@1.1.2: {}
 
-  /picocolors/1.0.0:
-    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
-    dev: true
+  pathval@2.0.0: {}
 
-  /picomatch/2.3.1:
-    resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
-    engines: {node: '>=8.6'}
-    dev: true
+  picocolors@1.1.0: {}
 
-  /pify/2.3.0:
-    resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  picomatch@2.3.1: {}
 
-  /pify/3.0.0:
-    resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
-    engines: {node: '>=4'}
-    dev: true
+  pify@2.3.0: {}
 
-  /pirates/4.0.5:
-    resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
-    engines: {node: '>= 6'}
-    dev: true
+  pify@3.0.0: {}
 
-  /pkg-dir/4.2.0:
-    resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
-    engines: {node: '>=8'}
+  postcss@8.4.47:
     dependencies:
-      find-up: 4.1.0
-    dev: true
+      nanoid: 3.3.7
+      picocolors: 1.1.0
+      source-map-js: 1.2.1
 
-  /prelude-ls/1.2.1:
-    resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
-    engines: {node: '>= 0.8.0'}
-    dev: true
+  prelude-ls@1.2.1: {}
 
-  /prettier-linter-helpers/1.0.0:
-    resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
-    engines: {node: '>=6.0.0'}
+  prettier-linter-helpers@1.0.0:
     dependencies:
-      fast-diff: 1.2.0
-    dev: true
+      fast-diff: 1.3.0
 
-  /prettier/2.7.1:
-    resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
-    engines: {node: '>=10.13.0'}
-    hasBin: true
-    dev: true
+  prettier@3.3.3: {}
 
-  /pretty-format/29.3.1:
-    resolution: {integrity: sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  pretty-format@29.7.0:
     dependencies:
-      '@jest/schemas': 29.0.0
+      '@jest/schemas': 29.6.3
       ansi-styles: 5.2.0
-      react-is: 18.2.0
-    dev: true
+      react-is: 18.3.1
 
-  /process-nextick-args/2.0.1:
-    resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
-    dev: true
+  process-nextick-args@2.0.1: {}
 
-  /prompts/2.4.2:
-    resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
-    engines: {node: '>= 6'}
-    dependencies:
-      kleur: 3.0.3
-      sisteransi: 1.0.5
-    dev: true
+  property-information@6.5.0: {}
 
-  /punycode/2.1.1:
-    resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
-    engines: {node: '>=6'}
-    dev: true
+  punycode.js@2.3.1: {}
 
-  /q/1.5.1:
-    resolution: {integrity: sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==}
-    engines: {node: '>=0.6.0', teleport: '>=0.2.0'}
-    dev: true
+  punycode@2.3.1: {}
 
-  /queue-microtask/1.2.3:
-    resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
-    dev: true
+  q@1.5.1: {}
 
-  /quick-lru/4.0.1:
-    resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
-    engines: {node: '>=8'}
-    dev: true
+  queue-microtask@1.2.3: {}
 
-  /randombytes/2.1.0:
-    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
+  quick-lru@4.0.1: {}
+
+  randombytes@2.1.0:
     dependencies:
       safe-buffer: 5.2.1
-    dev: true
 
-  /react-is/18.2.0:
-    resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
-    dev: true
+  react-is@18.3.1: {}
 
-  /read-pkg-up/3.0.0:
-    resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
-    engines: {node: '>=4'}
+  read-pkg-up@3.0.0:
     dependencies:
       find-up: 2.1.0
       read-pkg: 3.0.0
-    dev: true
 
-  /read-pkg-up/7.0.1:
-    resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
-    engines: {node: '>=8'}
+  read-pkg-up@7.0.1:
     dependencies:
       find-up: 4.1.0
       read-pkg: 5.2.0
       type-fest: 0.8.1
-    dev: true
 
-  /read-pkg/3.0.0:
-    resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==}
-    engines: {node: '>=4'}
+  read-pkg@3.0.0:
     dependencies:
       load-json-file: 4.0.0
       normalize-package-data: 2.5.0
       path-type: 3.0.0
-    dev: true
 
-  /read-pkg/5.2.0:
-    resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
-    engines: {node: '>=8'}
+  read-pkg@5.2.0:
     dependencies:
-      '@types/normalize-package-data': 2.4.1
+      '@types/normalize-package-data': 2.4.4
       normalize-package-data: 2.5.0
       parse-json: 5.2.0
       type-fest: 0.6.0
-    dev: true
 
-  /readable-stream/1.0.34:
-    resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==}
+  readable-stream@1.0.34:
     dependencies:
       core-util-is: 1.0.3
       inherits: 2.0.4
       isarray: 0.0.1
       string_decoder: 0.10.31
-    dev: true
 
-  /readable-stream/2.3.7:
-    resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
+  readable-stream@2.3.8:
     dependencies:
       core-util-is: 1.0.3
       inherits: 2.0.4
@@ -3528,241 +4007,146 @@ packages:
       safe-buffer: 5.1.2
       string_decoder: 1.1.1
       util-deprecate: 1.0.2
-    dev: true
 
-  /readable-stream/3.6.0:
-    resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
-    engines: {node: '>= 6'}
+  readable-stream@3.6.2:
     dependencies:
       inherits: 2.0.4
       string_decoder: 1.3.0
       util-deprecate: 1.0.2
-    dev: true
 
-  /redent/3.0.0:
-    resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
-    engines: {node: '>=8'}
+  redent@3.0.0:
     dependencies:
       indent-string: 4.0.0
       strip-indent: 3.0.0
-    dev: true
 
-  /regexpp/3.2.0:
-    resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==}
-    engines: {node: '>=8'}
-    dev: true
-
-  /require-directory/2.1.1:
-    resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
-    engines: {node: '>=0.10.0'}
-    dev: true
-
-  /resolve-cwd/3.0.0:
-    resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==}
-    engines: {node: '>=8'}
-    dependencies:
-      resolve-from: 5.0.0
-    dev: true
-
-  /resolve-from/4.0.0:
-    resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
-    engines: {node: '>=4'}
-    dev: true
+  regex@4.3.3: {}
 
-  /resolve-from/5.0.0:
-    resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
-    engines: {node: '>=8'}
-    dev: true
+  require-directory@2.1.1: {}
 
-  /resolve.exports/1.1.0:
-    resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==}
-    engines: {node: '>=10'}
-    dev: true
+  resolve-from@4.0.0: {}
 
-  /resolve/1.22.1:
-    resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
-    hasBin: true
+  resolve@1.22.8:
     dependencies:
-      is-core-module: 2.11.0
+      is-core-module: 2.15.1
       path-parse: 1.0.7
       supports-preserve-symlinks-flag: 1.0.0
-    dev: true
 
-  /reusify/1.0.4:
-    resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
-    engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
-    dev: true
+  reusify@1.0.4: {}
 
-  /rimraf/3.0.2:
-    resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
-    hasBin: true
+  rimraf@6.0.1:
     dependencies:
-      glob: 7.2.3
-    dev: true
+      glob: 11.0.0
+      package-json-from-dist: 1.0.1
 
-  /rollup-plugin-terser/7.0.2_rollup@3.3.0:
-    resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
-    peerDependencies:
-      rollup: ^2.0.0
+  rollup-plugin-terser@7.0.2(rollup@4.24.0):
     dependencies:
-      '@babel/code-frame': 7.18.6
+      '@babel/code-frame': 7.25.7
       jest-worker: 26.6.2
-      rollup: 3.3.0
+      rollup: 4.24.0
       serialize-javascript: 4.0.0
-      terser: 5.15.1
-    dev: true
+      terser: 5.34.1
 
-  /rollup/3.3.0:
-    resolution: {integrity: sha512-wqOV/vUJCYEbWsXvwCkgGWvgaEnsbn4jxBQWKpN816CqsmCimDmCNJI83c6if7QVD4v/zlyRzxN7U2yDT5rfoA==}
-    engines: {node: '>=14.18.0', npm: '>=8.0.0'}
-    hasBin: true
+  rollup@4.24.0:
+    dependencies:
+      '@types/estree': 1.0.6
     optionalDependencies:
-      fsevents: 2.3.2
-    dev: true
-
-  /run-parallel/1.2.0:
-    resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+      '@rollup/rollup-android-arm-eabi': 4.24.0
+      '@rollup/rollup-android-arm64': 4.24.0
+      '@rollup/rollup-darwin-arm64': 4.24.0
+      '@rollup/rollup-darwin-x64': 4.24.0
+      '@rollup/rollup-linux-arm-gnueabihf': 4.24.0
+      '@rollup/rollup-linux-arm-musleabihf': 4.24.0
+      '@rollup/rollup-linux-arm64-gnu': 4.24.0
+      '@rollup/rollup-linux-arm64-musl': 4.24.0
+      '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0
+      '@rollup/rollup-linux-riscv64-gnu': 4.24.0
+      '@rollup/rollup-linux-s390x-gnu': 4.24.0
+      '@rollup/rollup-linux-x64-gnu': 4.24.0
+      '@rollup/rollup-linux-x64-musl': 4.24.0
+      '@rollup/rollup-win32-arm64-msvc': 4.24.0
+      '@rollup/rollup-win32-ia32-msvc': 4.24.0
+      '@rollup/rollup-win32-x64-msvc': 4.24.0
+      fsevents: 2.3.3
+
+  run-parallel@1.2.0:
     dependencies:
       queue-microtask: 1.2.3
-    dev: true
 
-  /safe-buffer/5.1.2:
-    resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
-    dev: true
+  safe-buffer@5.1.2: {}
 
-  /safe-buffer/5.2.1:
-    resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
-    dev: true
+  safe-buffer@5.2.1: {}
 
-  /semver/5.7.1:
-    resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
-    hasBin: true
-    dev: true
+  semver@5.7.2: {}
 
-  /semver/6.3.0:
-    resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
-    hasBin: true
-    dev: true
+  semver@6.3.1: {}
 
-  /semver/7.3.8:
-    resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
-    engines: {node: '>=10'}
-    hasBin: true
-    dependencies:
-      lru-cache: 6.0.0
-    dev: true
+  semver@7.6.3: {}
 
-  /serialize-javascript/4.0.0:
-    resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
+  serialize-javascript@4.0.0:
     dependencies:
       randombytes: 2.1.0
-    dev: true
 
-  /shebang-command/2.0.0:
-    resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
-    engines: {node: '>=8'}
+  shebang-command@2.0.0:
     dependencies:
       shebang-regex: 3.0.0
-    dev: true
 
-  /shebang-regex/3.0.0:
-    resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
-    engines: {node: '>=8'}
-    dev: true
+  shebang-regex@3.0.0: {}
 
-  /shiki/0.11.1:
-    resolution: {integrity: sha512-EugY9VASFuDqOexOgXR18ZV+TbFrQHeCpEYaXamO+SZlsnT/2LxuLBX25GGtIrwaEVFXUAbUQ601SWE2rMwWHA==}
+  shiki@1.21.1:
     dependencies:
-      jsonc-parser: 3.2.0
-      vscode-oniguruma: 1.6.2
-      vscode-textmate: 6.0.0
-    dev: true
+      '@shikijs/core': 1.21.1
+      '@shikijs/engine-javascript': 1.21.1
+      '@shikijs/engine-oniguruma': 1.21.1
+      '@shikijs/types': 1.21.1
+      '@shikijs/vscode-textmate': 9.3.0
+      '@types/hast': 3.0.4
 
-  /signal-exit/3.0.7:
-    resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
-    dev: true
+  siginfo@2.0.0: {}
 
-  /sisteransi/1.0.5:
-    resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
-    dev: true
+  signal-exit@4.1.0: {}
 
-  /slash/3.0.0:
-    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
-    engines: {node: '>=8'}
-    dev: true
+  slash@3.0.0: {}
 
-  /source-map-support/0.5.13:
-    resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==}
-    dependencies:
-      buffer-from: 1.1.2
-      source-map: 0.6.1
-    dev: true
+  source-map-js@1.2.1: {}
 
-  /source-map-support/0.5.21:
-    resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+  source-map-support@0.5.21:
     dependencies:
       buffer-from: 1.1.2
       source-map: 0.6.1
-    dev: true
 
-  /source-map/0.6.1:
-    resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  source-map@0.6.1: {}
 
-  /sourcemap-codec/1.4.8:
-    resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
-    dev: true
+  space-separated-tokens@2.0.2: {}
 
-  /spdx-correct/3.1.1:
-    resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==}
+  spdx-correct@3.2.0:
     dependencies:
       spdx-expression-parse: 3.0.1
-      spdx-license-ids: 3.0.12
-    dev: true
+      spdx-license-ids: 3.0.20
 
-  /spdx-exceptions/2.3.0:
-    resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
-    dev: true
+  spdx-exceptions@2.5.0: {}
 
-  /spdx-expression-parse/3.0.1:
-    resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+  spdx-expression-parse@3.0.1:
     dependencies:
-      spdx-exceptions: 2.3.0
-      spdx-license-ids: 3.0.12
-    dev: true
+      spdx-exceptions: 2.5.0
+      spdx-license-ids: 3.0.20
 
-  /spdx-license-ids/3.0.12:
-    resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==}
-    dev: true
+  spdx-license-ids@3.0.20: {}
 
-  /split/1.0.1:
-    resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
+  split2@3.2.2:
     dependencies:
-      through: 2.3.8
-    dev: true
+      readable-stream: 3.6.2
 
-  /split2/3.2.2:
-    resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==}
+  split@1.0.1:
     dependencies:
-      readable-stream: 3.6.0
-    dev: true
-
-  /sprintf-js/1.0.3:
-    resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-    dev: true
+      through: 2.3.8
 
-  /stack-utils/2.0.6:
-    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
-    engines: {node: '>=10'}
+  stack-utils@2.0.6:
     dependencies:
       escape-string-regexp: 2.0.0
-    dev: true
 
-  /standard-version/9.5.0:
-    resolution: {integrity: sha512-3zWJ/mmZQsOaO+fOlsa0+QK90pwhNd042qEcw6hKFNoLFs7peGyvPffpEBbK/DSGPbyOvli0mUIFv5A4qTjh2Q==}
-    engines: {node: '>=10'}
-    hasBin: true
+  stackback@0.0.2: {}
+
+  standard-version@9.5.0:
     dependencies:
       chalk: 2.4.2
       conventional-changelog: 3.1.25
@@ -3775,481 +4159,332 @@ packages:
       figures: 3.2.0
       find-up: 5.0.0
       git-semver-tags: 4.1.1
-      semver: 7.3.8
+      semver: 7.6.3
       stringify-package: 1.0.1
       yargs: 16.2.0
-    dev: true
 
-  /string-length/4.0.2:
-    resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==}
-    engines: {node: '>=10'}
-    dependencies:
-      char-regex: 1.0.2
-      strip-ansi: 6.0.1
-    dev: true
+  std-env@3.7.0: {}
 
-  /string-width/4.2.3:
-    resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
-    engines: {node: '>=8'}
+  string-width@4.2.3:
     dependencies:
       emoji-regex: 8.0.0
       is-fullwidth-code-point: 3.0.0
       strip-ansi: 6.0.1
-    dev: true
 
-  /string_decoder/0.10.31:
-    resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
-    dev: true
+  string-width@5.1.2:
+    dependencies:
+      eastasianwidth: 0.2.0
+      emoji-regex: 9.2.2
+      strip-ansi: 7.1.0
 
-  /string_decoder/1.1.1:
-    resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
+  string_decoder@0.10.31: {}
+
+  string_decoder@1.1.1:
     dependencies:
       safe-buffer: 5.1.2
-    dev: true
 
-  /string_decoder/1.3.0:
-    resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+  string_decoder@1.3.0:
     dependencies:
       safe-buffer: 5.2.1
-    dev: true
 
-  /stringify-package/1.0.1:
-    resolution: {integrity: sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==}
-    deprecated: This module is not used anymore, and has been replaced by @npmcli/package-json
-    dev: true
+  stringify-entities@4.0.4:
+    dependencies:
+      character-entities-html4: 2.1.0
+      character-entities-legacy: 3.0.0
 
-  /strip-ansi/6.0.1:
-    resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
-    engines: {node: '>=8'}
+  stringify-package@1.0.1: {}
+
+  strip-ansi@6.0.1:
     dependencies:
       ansi-regex: 5.0.1
-    dev: true
-
-  /strip-bom/3.0.0:
-    resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
-    engines: {node: '>=4'}
-    dev: true
 
-  /strip-bom/4.0.0:
-    resolution: {integrity: sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==}
-    engines: {node: '>=8'}
-    dev: true
+  strip-ansi@7.1.0:
+    dependencies:
+      ansi-regex: 6.1.0
 
-  /strip-final-newline/2.0.0:
-    resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
-    engines: {node: '>=6'}
-    dev: true
+  strip-bom@3.0.0: {}
 
-  /strip-indent/3.0.0:
-    resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
-    engines: {node: '>=8'}
+  strip-indent@3.0.0:
     dependencies:
       min-indent: 1.0.1
-    dev: true
 
-  /strip-json-comments/3.1.1:
-    resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
-    engines: {node: '>=8'}
-    dev: true
+  strip-json-comments@3.1.1: {}
 
-  /supports-color/5.5.0:
-    resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
-    engines: {node: '>=4'}
+  supports-color@5.5.0:
     dependencies:
       has-flag: 3.0.0
-    dev: true
 
-  /supports-color/7.2.0:
-    resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
-    engines: {node: '>=8'}
+  supports-color@7.2.0:
     dependencies:
       has-flag: 4.0.0
-    dev: true
 
-  /supports-color/8.1.1:
-    resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
-    engines: {node: '>=10'}
-    dependencies:
-      has-flag: 4.0.0
-    dev: true
+  supports-preserve-symlinks-flag@1.0.0: {}
 
-  /supports-preserve-symlinks-flag/1.0.0:
-    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
-    engines: {node: '>= 0.4'}
-    dev: true
+  synckit@0.9.1:
+    dependencies:
+      '@pkgr/core': 0.1.1
+      tslib: 2.7.0
 
-  /terser/5.15.1:
-    resolution: {integrity: sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==}
-    engines: {node: '>=10'}
-    hasBin: true
+  terser@5.34.1:
     dependencies:
-      '@jridgewell/source-map': 0.3.2
-      acorn: 8.8.1
+      '@jridgewell/source-map': 0.3.6
+      acorn: 8.12.1
       commander: 2.20.3
       source-map-support: 0.5.21
-    dev: true
 
-  /test-exclude/6.0.0:
-    resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==}
-    engines: {node: '>=8'}
+  test-exclude@7.0.1:
     dependencies:
       '@istanbuljs/schema': 0.1.3
-      glob: 7.2.3
-      minimatch: 3.1.2
-    dev: true
-
-  /text-extensions/1.9.0:
-    resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==}
-    engines: {node: '>=0.10'}
-    dev: true
+      glob: 10.4.5
+      minimatch: 9.0.5
 
-  /text-table/0.2.0:
-    resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
-    dev: true
+  text-extensions@1.9.0: {}
 
-  /through/2.3.8:
-    resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
-    dev: true
+  text-table@0.2.0: {}
 
-  /through2/2.0.5:
-    resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
+  through2@2.0.5:
     dependencies:
-      readable-stream: 2.3.7
+      readable-stream: 2.3.8
       xtend: 4.0.2
-    dev: true
 
-  /through2/4.0.2:
-    resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==}
+  through2@4.0.2:
     dependencies:
-      readable-stream: 3.6.0
-    dev: true
+      readable-stream: 3.6.2
 
-  /tmpl/1.0.5:
-    resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==}
-    dev: true
+  through@2.3.8: {}
 
-  /to-fast-properties/2.0.0:
-    resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
-    engines: {node: '>=4'}
-    dev: true
+  tinybench@2.9.0: {}
 
-  /to-regex-range/5.0.1:
-    resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
-    engines: {node: '>=8.0'}
+  tinyexec@0.3.0: {}
+
+  tinypool@1.0.1: {}
+
+  tinyrainbow@1.2.0: {}
+
+  tinyspy@3.0.2: {}
+
+  to-fast-properties@2.0.0: {}
+
+  to-regex-range@5.0.1:
     dependencies:
       is-number: 7.0.0
-    dev: true
 
-  /trim-newlines/3.0.1:
-    resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
-    engines: {node: '>=8'}
-    dev: true
+  trim-lines@3.0.1: {}
 
-  /ts-jest/29.0.3_r24ewcothphvclnu77pxb4u4se:
-    resolution: {integrity: sha512-Ibygvmuyq1qp/z3yTh9QTwVVAbFdDy/+4BtIQR2sp6baF2SJU/8CKK/hhnGIDY2L90Az2jIqTwZPnN2p+BweiQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-    hasBin: true
-    peerDependencies:
-      '@babel/core': '>=7.0.0-beta.0 <8'
-      '@jest/types': ^29.0.0
-      babel-jest: ^29.0.0
-      esbuild: '*'
-      jest: ^29.0.0
-      typescript: '>=4.3'
-    peerDependenciesMeta:
-      '@babel/core':
-        optional: true
-      '@jest/types':
-        optional: true
-      babel-jest:
-        optional: true
-      esbuild:
-        optional: true
+  trim-newlines@3.0.1: {}
+
+  ts-api-utils@1.3.0(typescript@5.6.2):
     dependencies:
-      bs-logger: 0.2.6
-      fast-json-stable-stringify: 2.1.0
-      jest: 29.3.1_qgsvtivhigskinhtkon55hue3i
-      jest-util: 29.3.1
-      json5: 2.2.1
-      lodash.memoize: 4.1.2
-      make-error: 1.3.6
-      semver: 7.3.8
-      typescript: 4.8.4
-      yargs-parser: 21.1.1
-    dev: true
+      typescript: 5.6.2
 
-  /ts-node/10.9.1_st2htz3eb6effj72w7hhhfw6hu:
-    resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
-    hasBin: true
-    peerDependencies:
-      '@swc/core': '>=1.2.50'
-      '@swc/wasm': '>=1.2.50'
-      '@types/node': '*'
-      typescript: '>=2.7'
-    peerDependenciesMeta:
-      '@swc/core':
-        optional: true
-      '@swc/wasm':
-        optional: true
+  ts-node@10.9.2(@types/node@22.7.4)(typescript@5.6.2):
     dependencies:
       '@cspotcode/source-map-support': 0.8.1
-      '@tsconfig/node10': 1.0.9
+      '@tsconfig/node10': 1.0.11
       '@tsconfig/node12': 1.0.11
       '@tsconfig/node14': 1.0.3
-      '@tsconfig/node16': 1.0.3
-      '@types/node': 16.0.0
-      acorn: 8.8.1
-      acorn-walk: 8.2.0
+      '@tsconfig/node16': 1.0.4
+      '@types/node': 22.7.4
+      acorn: 8.12.1
+      acorn-walk: 8.3.4
       arg: 4.1.3
       create-require: 1.1.1
       diff: 4.0.2
       make-error: 1.3.6
-      typescript: 4.8.4
+      typescript: 5.6.2
       v8-compile-cache-lib: 3.0.1
       yn: 3.1.1
-    dev: true
-
-  /tslib/1.14.1:
-    resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
-    dev: true
-
-  /tslib/2.4.1:
-    resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
-    dev: true
 
-  /tsutils/3.21.0_typescript@4.8.4:
-    resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
-    engines: {node: '>= 6'}
-    peerDependencies:
-      typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
-    dependencies:
-      tslib: 1.14.1
-      typescript: 4.8.4
-    dev: true
+  tslib@2.7.0: {}
 
-  /type-check/0.4.0:
-    resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
-    engines: {node: '>= 0.8.0'}
+  type-check@0.4.0:
     dependencies:
       prelude-ls: 1.2.1
-    dev: true
-
-  /type-detect/4.0.8:
-    resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==}
-    engines: {node: '>=4'}
-    dev: true
-
-  /type-fest/0.18.1:
-    resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
-    engines: {node: '>=10'}
-    dev: true
-
-  /type-fest/0.20.2:
-    resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
-    engines: {node: '>=10'}
-    dev: true
 
-  /type-fest/0.21.3:
-    resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
-    engines: {node: '>=10'}
-    dev: true
+  type-fest@0.18.1: {}
 
-  /type-fest/0.6.0:
-    resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
-    engines: {node: '>=8'}
-    dev: true
+  type-fest@0.6.0: {}
 
-  /type-fest/0.8.1:
-    resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
-    engines: {node: '>=8'}
-    dev: true
+  type-fest@0.8.1: {}
 
-  /typedarray/0.0.6:
-    resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
-    dev: true
+  typedarray@0.0.6: {}
 
-  /typedoc/0.23.20_typescript@4.8.4:
-    resolution: {integrity: sha512-nfb4Mx05ZZZXux3zPcLuc7+3TVePDW3jTdEBqXdQzJUyEILxoprgPIiTChbvci9crkqNJG9YESmfCptuh9Gn3g==}
-    engines: {node: '>= 14.14'}
-    hasBin: true
-    peerDependencies:
-      typescript: 4.6.x || 4.7.x || 4.8.x
+  typedoc@0.26.8(typescript@5.6.2):
     dependencies:
       lunr: 2.3.9
-      marked: 4.2.2
-      minimatch: 5.1.0
-      shiki: 0.11.1
-      typescript: 4.8.4
-    dev: true
-
-  /typescript/4.8.4:
-    resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
-    engines: {node: '>=4.2.0'}
-    hasBin: true
-    dev: true
+      markdown-it: 14.1.0
+      minimatch: 9.0.5
+      shiki: 1.21.1
+      typescript: 5.6.2
+      yaml: 2.5.1
 
-  /uglify-js/3.17.4:
-    resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
-    engines: {node: '>=0.8.0'}
-    hasBin: true
-    requiresBuild: true
-    dev: true
+  typescript@5.6.2: {}
+
+  uc.micro@2.1.0: {}
+
+  uglify-js@3.19.3:
     optional: true
 
-  /untildify/4.0.0:
-    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
-    engines: {node: '>=8'}
-    dev: true
+  undici-types@6.19.8: {}
 
-  /update-browserslist-db/1.0.10_browserslist@4.21.4:
-    resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
-    hasBin: true
-    peerDependencies:
-      browserslist: '>= 4.21.0'
+  unist-util-is@6.0.0:
     dependencies:
-      browserslist: 4.21.4
-      escalade: 3.1.1
-      picocolors: 1.0.0
-    dev: true
+      '@types/unist': 3.0.3
 
-  /uri-js/4.4.1:
-    resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+  unist-util-position@5.0.0:
     dependencies:
-      punycode: 2.1.1
-    dev: true
+      '@types/unist': 3.0.3
 
-  /util-deprecate/1.0.2:
-    resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
-    dev: true
+  unist-util-stringify-position@4.0.0:
+    dependencies:
+      '@types/unist': 3.0.3
 
-  /v8-compile-cache-lib/3.0.1:
-    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
-    dev: true
+  unist-util-visit-parents@6.0.1:
+    dependencies:
+      '@types/unist': 3.0.3
+      unist-util-is: 6.0.0
 
-  /v8-to-istanbul/9.0.1:
-    resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==}
-    engines: {node: '>=10.12.0'}
+  unist-util-visit@5.0.0:
     dependencies:
-      '@jridgewell/trace-mapping': 0.3.17
-      '@types/istanbul-lib-coverage': 2.0.4
-      convert-source-map: 1.9.0
-    dev: true
+      '@types/unist': 3.0.3
+      unist-util-is: 6.0.0
+      unist-util-visit-parents: 6.0.1
 
-  /validate-npm-package-license/3.0.4:
-    resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+  untildify@4.0.0: {}
+
+  uri-js@4.4.1:
     dependencies:
-      spdx-correct: 3.1.1
+      punycode: 2.3.1
+
+  util-deprecate@1.0.2: {}
+
+  v8-compile-cache-lib@3.0.1: {}
+
+  validate-npm-package-license@3.0.4:
+    dependencies:
+      spdx-correct: 3.2.0
       spdx-expression-parse: 3.0.1
-    dev: true
 
-  /vscode-oniguruma/1.6.2:
-    resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==}
-    dev: true
+  vfile-message@4.0.2:
+    dependencies:
+      '@types/unist': 3.0.3
+      unist-util-stringify-position: 4.0.0
 
-  /vscode-textmate/6.0.0:
-    resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==}
-    dev: true
+  vfile@6.0.3:
+    dependencies:
+      '@types/unist': 3.0.3
+      vfile-message: 4.0.2
 
-  /walker/1.0.8:
-    resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==}
+  vite-node@2.1.2(@types/node@22.7.4)(terser@5.34.1):
     dependencies:
-      makeerror: 1.0.12
-    dev: true
+      cac: 6.7.14
+      debug: 4.3.7
+      pathe: 1.1.2
+      vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1)
+    transitivePeerDependencies:
+      - '@types/node'
+      - less
+      - lightningcss
+      - sass
+      - sass-embedded
+      - stylus
+      - sugarss
+      - supports-color
+      - terser
 
-  /which/2.0.2:
-    resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
-    engines: {node: '>= 8'}
-    hasBin: true
+  vite@5.4.8(@types/node@22.7.4)(terser@5.34.1):
+    dependencies:
+      esbuild: 0.21.5
+      postcss: 8.4.47
+      rollup: 4.24.0
+    optionalDependencies:
+      '@types/node': 22.7.4
+      fsevents: 2.3.3
+      terser: 5.34.1
+
+  vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1):
+    dependencies:
+      '@vitest/expect': 2.1.2
+      '@vitest/mocker': 2.1.2(@vitest/spy@2.1.2)(vite@5.4.8(@types/node@22.7.4)(terser@5.34.1))
+      '@vitest/pretty-format': 2.1.2
+      '@vitest/runner': 2.1.2
+      '@vitest/snapshot': 2.1.2
+      '@vitest/spy': 2.1.2
+      '@vitest/utils': 2.1.2
+      chai: 5.1.1
+      debug: 4.3.7
+      magic-string: 0.30.11
+      pathe: 1.1.2
+      std-env: 3.7.0
+      tinybench: 2.9.0
+      tinyexec: 0.3.0
+      tinypool: 1.0.1
+      tinyrainbow: 1.2.0
+      vite: 5.4.8(@types/node@22.7.4)(terser@5.34.1)
+      vite-node: 2.1.2(@types/node@22.7.4)(terser@5.34.1)
+      why-is-node-running: 2.3.0
+    optionalDependencies:
+      '@types/node': 22.7.4
+    transitivePeerDependencies:
+      - less
+      - lightningcss
+      - msw
+      - sass
+      - sass-embedded
+      - stylus
+      - sugarss
+      - supports-color
+      - terser
+
+  which@2.0.2:
     dependencies:
       isexe: 2.0.0
-    dev: true
 
-  /word-wrap/1.2.3:
-    resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
-    engines: {node: '>=0.10.0'}
-    dev: true
+  why-is-node-running@2.3.0:
+    dependencies:
+      siginfo: 2.0.0
+      stackback: 0.0.2
 
-  /wordwrap/1.0.0:
-    resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
-    dev: true
+  word-wrap@1.2.5: {}
 
-  /wrap-ansi/7.0.0:
-    resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
-    engines: {node: '>=10'}
+  wordwrap@1.0.0: {}
+
+  wrap-ansi@7.0.0:
     dependencies:
       ansi-styles: 4.3.0
       string-width: 4.2.3
       strip-ansi: 6.0.1
-    dev: true
 
-  /wrappy/1.0.2:
-    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-    dev: true
-
-  /write-file-atomic/4.0.2:
-    resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==}
-    engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+  wrap-ansi@8.1.0:
     dependencies:
-      imurmurhash: 0.1.4
-      signal-exit: 3.0.7
-    dev: true
+      ansi-styles: 6.2.1
+      string-width: 5.1.2
+      strip-ansi: 7.1.0
 
-  /xtend/4.0.2:
-    resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
-    engines: {node: '>=0.4'}
-    dev: true
+  wrappy@1.0.2: {}
 
-  /y18n/5.0.8:
-    resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
-    engines: {node: '>=10'}
-    dev: true
+  xtend@4.0.2: {}
 
-  /yallist/4.0.0:
-    resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
-    dev: true
+  y18n@5.0.8: {}
 
-  /yargs-parser/20.2.9:
-    resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
-    engines: {node: '>=10'}
-    dev: true
+  yallist@4.0.0: {}
 
-  /yargs-parser/21.1.1:
-    resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
-    engines: {node: '>=12'}
-    dev: true
+  yaml@2.5.1: {}
 
-  /yargs/16.2.0:
-    resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
-    engines: {node: '>=10'}
+  yargs-parser@20.2.9: {}
+
+  yargs@16.2.0:
     dependencies:
       cliui: 7.0.4
-      escalade: 3.1.1
+      escalade: 3.2.0
       get-caller-file: 2.0.5
       require-directory: 2.1.1
       string-width: 4.2.3
       y18n: 5.0.8
       yargs-parser: 20.2.9
-    dev: true
 
-  /yargs/17.6.2:
-    resolution: {integrity: sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==}
-    engines: {node: '>=12'}
-    dependencies:
-      cliui: 8.0.1
-      escalade: 3.1.1
-      get-caller-file: 2.0.5
-      require-directory: 2.1.1
-      string-width: 4.2.3
-      y18n: 5.0.8
-      yargs-parser: 21.1.1
-    dev: true
+  yn@3.1.1: {}
 
-  /yn/3.1.1:
-    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
-    engines: {node: '>=6'}
-    dev: true
+  yocto-queue@0.1.0: {}
 
-  /yocto-queue/0.1.0:
-    resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
-    engines: {node: '>=10'}
-    dev: true
+  zwitch@2.0.4: {}

From 1b37cff800c5c6d60befa6adf4450afbd50fea40 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Mon, 7 Oct 2024 12:45:38 +0100
Subject: [PATCH 03/20] feat: switchfrom jest to vitest

---
 jest.config.js   | 23 -----------------------
 vitest.config.ts | 10 ++++++++++
 2 files changed, 10 insertions(+), 23 deletions(-)
 delete mode 100644 jest.config.js
 create mode 100644 vitest.config.ts

diff --git a/jest.config.js b/jest.config.js
deleted file mode 100644
index 8379ab4..0000000
--- a/jest.config.js
+++ /dev/null
@@ -1,23 +0,0 @@
-module.exports = {
-  verbose: true,
-  modulePaths: ["<rootDir>/src/"],
-  collectCoverageFrom: ["src/*.ts"],
-  testEnvironmentOptions: { url: "http://localhost" },
-  testPathIgnorePatterns: ["node_modules"],
-  transformIgnorePatterns: [
-    "[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs|ts|tsx)$",
-  ],
-  transform: {
-    "^.+\\.tsx?$": "ts-jest",
-  },
-  testRegex: "(/tests/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
-  moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"],
-  coverageThreshold: {
-    global: {
-      statements: 80,
-      branches: 80,
-      functions: 80,
-      lines: 80,
-    },
-  },
-}
diff --git a/vitest.config.ts b/vitest.config.ts
new file mode 100644
index 0000000..0109a67
--- /dev/null
+++ b/vitest.config.ts
@@ -0,0 +1,10 @@
+import { defineConfig } from 'vitest/config'
+
+export default defineConfig({
+  test: {
+    globals: true,
+    coverage:{
+        include: ['src/**/*.ts'],
+    }
+  },
+})
\ No newline at end of file

From 42d17c089b1a588e20a61eaf1bfeab710cb88917 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Mon, 7 Oct 2024 22:27:50 +0100
Subject: [PATCH 04/20] fix: addl full unittest coverage

---
 CHANGELOG.md                       |   4 +
 dist/quran-meta.common.js          | 532 ++++++++++++++++-------------
 dist/quran-meta.common.js.map      |   2 +-
 dist/quran-meta.esm.browser.js     | 457 ++++++++++++++-----------
 dist/quran-meta.esm.browser.min.js |   2 +-
 dist/quran-meta.esm.js             | 531 +++++++++++++++-------------
 dist/quran-meta.esm.js.map         |   2 +-
 dist/quran-meta.js                 | 532 ++++++++++++++++-------------
 dist/quran-meta.js.map             |   2 +-
 dist/quran-meta.min.js             |   2 +-
 lib_cjs/ayaStringSplitter.js       |  38 ++-
 lib_cjs/ayaStringSplitter.js.map   |   2 +-
 lib_cjs/checkValidAyahId.js        |  16 +
 lib_cjs/checkValidAyahId.js.map    |   1 +
 lib_cjs/checkValidSurah.js         |  21 ++
 lib_cjs/checkValidSurah.js.map     |   1 +
 lib_cjs/checkValidSurahAyah.js     |  26 ++
 lib_cjs/checkValidSurahAyah.js.map |   1 +
 lib_cjs/findAyaidBySurah.js        |  17 +
 lib_cjs/findAyaidBySurah.js.map    |   1 +
 lib_cjs/findJuz.js                 |  23 ++
 lib_cjs/findJuz.js.map             |   1 +
 lib_cjs/findJuzAndShift.js         |  38 +++
 lib_cjs/findJuzAndShift.js.map     |   1 +
 lib_cjs/findJuzByAyaid.js          |  16 +
 lib_cjs/findJuzByAyaid.js.map      |   1 +
 lib_cjs/findJuzHizb.js             |  23 ++
 lib_cjs/findJuzHizb.js.map         |   1 +
 lib_cjs/findJuzHizbByAyaid.js      |  19 ++
 lib_cjs/findJuzHizbByAyaid.js.map  |   1 +
 lib_cjs/findJuzMetaBySurah.js      |  29 ++
 lib_cjs/findJuzMetaBySurah.js.map  |   1 +
 lib_cjs/findPage.js                |  23 ++
 lib_cjs/findPage.js.map            |   1 +
 lib_cjs/findRangeAroundAyah.js     |  67 ++++
 lib_cjs/findRangeAroundAyah.js.map |   1 +
 lib_cjs/findSurahByAyaid.js        |  17 +
 lib_cjs/findSurahByAyaid.js.map    |   1 +
 lib_cjs/getAyaCountinSura.js       |  13 +
 lib_cjs/getAyaCountinSura.js.map   |   1 +
 lib_cjs/getSurahMeta.js            |  16 +
 lib_cjs/getSurahMeta.js.map        |   1 +
 lib_cjs/hizbList.js                |   1 +
 lib_cjs/hizbList.js.map            |   2 +-
 lib_cjs/index.js                   | 428 ++++-------------------
 lib_cjs/index.js.map               |   2 +-
 lib_cjs/isAyahJuzFirst.js          |  26 ++
 lib_cjs/isAyahJuzFirst.js.map      |   1 +
 lib_cjs/isAyahPageFirst.js         |  25 ++
 lib_cjs/isAyahPageFirst.js.map     |   1 +
 lib_cjs/juzList.js                 |  10 +
 lib_cjs/juzList.js.map             |   1 +
 lib_cjs/lists/hizbList.js          |  25 ++
 lib_cjs/lists/hizbList.js.map      |   1 +
 lib_cjs/lists/juzList.js           |  10 +
 lib_cjs/lists/juzList.js.map       |   1 +
 lib_cjs/lists/manzilList.js        |   6 +
 lib_cjs/lists/manzilList.js.map    |   1 +
 lib_cjs/lists/pageList.js          |  51 +++
 lib_cjs/lists/pageList.js.map      |   1 +
 lib_cjs/lists/rukuList.js          |  48 +++
 lib_cjs/lists/rukuList.js.map      |   1 +
 lib_cjs/lists/sajdaList.js         |  32 ++
 lib_cjs/lists/sajdaList.js.map     |   1 +
 lib_cjs/lists/surahList.js         | 122 +++++++
 lib_cjs/lists/surahList.js.map     |   1 +
 lib_cjs/manzilList.js              |   6 +
 lib_cjs/manzilList.js.map          |   1 +
 lib_cjs/nextAyah.js                |  19 ++
 lib_cjs/nextAyah.js.map            |   1 +
 lib_cjs/pageMeta.js                |  37 ++
 lib_cjs/pageMeta.js.map            |   1 +
 lib_cjs/prevAyah.js                |  19 ++
 lib_cjs/prevAyah.js.map            |   1 +
 lib_cjs/sajdaList.js               |  32 ++
 lib_cjs/sajdaList.js.map           |   1 +
 lib_cjs/utils.js                   |  31 ++
 lib_cjs/utils.js.map               |   1 +
 lib_es/ayaStringSplitter.js        |  35 +-
 lib_es/ayaStringSplitter.js.map    |   2 +-
 lib_es/checkValidAyahId.js         |  13 +
 lib_es/checkValidAyahId.js.map     |   1 +
 lib_es/checkValidSurah.js          |  17 +
 lib_es/checkValidSurah.js.map      |   1 +
 lib_es/checkValidSurahAyah.js      |  22 ++
 lib_es/checkValidSurahAyah.js.map  |   1 +
 lib_es/findAyaidBySurah.js         |  14 +
 lib_es/findAyaidBySurah.js.map     |   1 +
 lib_es/findJuz.js                  |  18 +
 lib_es/findJuz.js.map              |   1 +
 lib_es/findJuzAndShift.js          |  34 ++
 lib_es/findJuzAndShift.js.map      |   1 +
 lib_es/findJuzByAyaid.js           |  13 +
 lib_es/findJuzByAyaid.js.map       |   1 +
 lib_es/findJuzHizb.js              |  18 +
 lib_es/findJuzHizb.js.map          |   1 +
 lib_es/findJuzHizbByAyaid.js       |  16 +
 lib_es/findJuzHizbByAyaid.js.map   |   1 +
 lib_es/findJuzMetaBySurah.js       |  25 ++
 lib_es/findJuzMetaBySurah.js.map   |   1 +
 lib_es/findPage.js                 |  19 ++
 lib_es/findPage.js.map             |   1 +
 lib_es/findRangeAroundAyah.js      |  63 ++++
 lib_es/findRangeAroundAyah.js.map  |   1 +
 lib_es/findSurahByAyaid.js         |  14 +
 lib_es/findSurahByAyaid.js.map     |   1 +
 lib_es/getAyaCountinSura.js        |  10 +
 lib_es/getAyaCountinSura.js.map    |   1 +
 lib_es/getSurahMeta.js             |  13 +
 lib_es/getSurahMeta.js.map         |   1 +
 lib_es/hizbList.js                 |   1 +
 lib_es/hizbList.js.map             |   2 +-
 lib_es/index.js                    | 355 ++-----------------
 lib_es/index.js.map                |   2 +-
 lib_es/isAyahJuzFirst.js           |  22 ++
 lib_es/isAyahJuzFirst.js.map       |   1 +
 lib_es/isAyahPageFirst.js          |  21 ++
 lib_es/isAyahPageFirst.js.map      |   1 +
 lib_es/juzList.js                  |   7 +
 lib_es/juzList.js.map              |   1 +
 lib_es/lists/hizbList.js           |  22 ++
 lib_es/lists/hizbList.js.map       |   1 +
 lib_es/lists/juzList.js            |   7 +
 lib_es/lists/juzList.js.map        |   1 +
 lib_es/lists/manzilList.js         |   3 +
 lib_es/lists/manzilList.js.map     |   1 +
 lib_es/lists/pageList.js           |  48 +++
 lib_es/lists/pageList.js.map       |   1 +
 lib_es/lists/rukuList.js           |  45 +++
 lib_es/lists/rukuList.js.map       |   1 +
 lib_es/lists/sajdaList.js          |  29 ++
 lib_es/lists/sajdaList.js.map      |   1 +
 lib_es/lists/surahList.js          | 119 +++++++
 lib_es/lists/surahList.js.map      |   1 +
 lib_es/manzilList.js               |   3 +
 lib_es/manzilList.js.map           |   1 +
 lib_es/nextAyah.js                 |  16 +
 lib_es/nextAyah.js.map             |   1 +
 lib_es/pageMeta.js                 |  25 ++
 lib_es/pageMeta.js.map             |   1 +
 lib_es/prevAyah.js                 |  16 +
 lib_es/prevAyah.js.map             |   1 +
 lib_es/sajdaList.js                |  29 ++
 lib_es/sajdaList.js.map            |   1 +
 lib_es/utils.js                    |  27 ++
 lib_es/utils.js.map                |   1 +
 package.json                       |   2 +-
 src/ayaStringSplitter.ts           |  40 ++-
 src/checkValidAyahId.ts            |  14 +
 src/checkValidSurah.ts             |  18 +
 src/checkValidSurahAyah.ts         |  22 ++
 src/findAyaidBySurah.ts            |  15 +
 src/findJuz.ts                     |  20 ++
 src/findJuzAndShift.ts             |  44 +++
 src/findJuzByAyaid.ts              |  16 +
 src/findJuzHizb.ts                 |  24 ++
 src/findJuzHizbByAyaid.ts          |  20 ++
 src/findJuzMetaBySurah.ts          |  30 ++
 src/findPage.ts                    |  22 ++
 src/findRangeAroundAyah.ts         |  75 ++++
 src/findSurahByAyaid.ts            |  16 +
 src/getAyaCountinSura.ts           |  11 +
 src/getSurahMeta.ts                |  15 +
 src/index.ts                       | 462 ++-----------------------
 src/isAyahJuzFirst.ts              |  28 ++
 src/isAyahPageFirst.ts             |  28 ++
 src/{ => lists}/hizbList.ts        |   3 +-
 src/lists/juzList.ts               |   8 +
 src/lists/manzilList.ts            |   4 +
 src/{ => lists}/pageList.ts        |   2 +-
 src/{ => lists}/rukuList.ts        |   2 +-
 src/lists/sajdaList.ts             |  30 ++
 src/{ => lists}/surahList.ts       |   2 +-
 src/nextAyah.ts                    |  18 +
 src/pageMeta.ts                    |  29 ++
 src/prevAyah.ts                    |  18 +
 src/utils.ts                       |  28 ++
 tests/ayaStringSplitter.spec.ts    |  55 +++
 tests/checkValidAyahId.spec.ts     |  30 ++
 tests/checkValidSurah.spec.ts      |  29 ++
 tests/checkValidSurahAyah.spec.ts  |  34 ++
 tests/findAyaidBySurah.spec.ts     |  45 +++
 tests/findJuz.spec.ts              |  47 +++
 tests/findJuzAndShift.spec.ts      | 112 ++++++
 tests/findJuzByAyaid.spec.ts       |  36 ++
 tests/findJuzHizb.spec.ts          |  29 ++
 tests/findJuzHizbByAyaid.spec.ts   |  50 +++
 tests/findJuzMetaBySurah.spec.ts   |  72 ++++
 tests/findPage.spec.ts             |  54 +++
 tests/findRangeAroundAyah.spec.ts  |  47 +++
 tests/findSurahByAyaid.spec.ts     |  40 +++
 tests/getAyaCountinSura.spec.ts    |  28 ++
 tests/getSurahMeta.spec.ts         |  27 ++
 tests/isAyahJuzFirst.spec.ts       |  48 +++
 tests/isAyahPageFirst.spec.ts      |  48 +++
 tests/nextAyah.spec.ts             |  33 ++
 tests/pageMeta.spec.ts             |  32 ++
 tests/prevAyah.spec.ts             |  39 +++
 tests/quran-data.spec.ts           | 198 +----------
 types/checkValidAyahId.d.ts        |   8 +
 types/checkValidSurah.d.ts         |   9 +
 types/checkValidSurahAyah.d.ts     |  10 +
 types/const.d.ts                   |   2 +-
 types/findAyaidBySurah.d.ts        |   8 +
 types/findJuz.d.ts                 |  10 +
 types/findJuzAndShift.d.ts         |  17 +
 types/findJuzByAyaid.d.ts          |   8 +
 types/findJuzHizb.d.ts             |  10 +
 types/findJuzHizbByAyaid.d.ts      |   8 +
 types/findJuzMetaBySurah.d.ts      |   8 +
 types/findPage.d.ts                |  10 +
 types/findRangeAroundAyah.d.ts     |  13 +
 types/findSurahByAyaid.d.ts        |   8 +
 types/getAyaCountinSura.d.ts       |   7 +
 types/getSurahMeta.d.ts            |   8 +
 types/index.d.ts                   | 150 ++------
 types/isAyahJuzFirst.d.ts          |  11 +
 types/isAyahPageFirst.d.ts         |  10 +
 types/juzList.d.ts                 |   2 +
 types/lists/hizbList.d.ts          |   2 +
 types/lists/juzList.d.ts           |   2 +
 types/lists/manzilList.d.ts        |   2 +
 types/lists/pageList.d.ts          |   2 +
 types/lists/rukuList.d.ts          |   2 +
 types/lists/sajdaList.d.ts         |   2 +
 types/lists/surahList.d.ts         |   2 +
 types/manzilList.d.ts              |   2 +
 types/nextAyah.d.ts                |   8 +
 types/pageMeta.d.ts                |   9 +
 types/prevAyah.d.ts                |   8 +
 types/sajdaList.d.ts               |   2 +
 types/types.d.ts                   |  28 +-
 types/utils.d.ts                   |   9 +
 233 files changed, 4810 insertions(+), 2395 deletions(-)
 create mode 100644 lib_cjs/checkValidAyahId.js
 create mode 100644 lib_cjs/checkValidAyahId.js.map
 create mode 100644 lib_cjs/checkValidSurah.js
 create mode 100644 lib_cjs/checkValidSurah.js.map
 create mode 100644 lib_cjs/checkValidSurahAyah.js
 create mode 100644 lib_cjs/checkValidSurahAyah.js.map
 create mode 100644 lib_cjs/findAyaidBySurah.js
 create mode 100644 lib_cjs/findAyaidBySurah.js.map
 create mode 100644 lib_cjs/findJuz.js
 create mode 100644 lib_cjs/findJuz.js.map
 create mode 100644 lib_cjs/findJuzAndShift.js
 create mode 100644 lib_cjs/findJuzAndShift.js.map
 create mode 100644 lib_cjs/findJuzByAyaid.js
 create mode 100644 lib_cjs/findJuzByAyaid.js.map
 create mode 100644 lib_cjs/findJuzHizb.js
 create mode 100644 lib_cjs/findJuzHizb.js.map
 create mode 100644 lib_cjs/findJuzHizbByAyaid.js
 create mode 100644 lib_cjs/findJuzHizbByAyaid.js.map
 create mode 100644 lib_cjs/findJuzMetaBySurah.js
 create mode 100644 lib_cjs/findJuzMetaBySurah.js.map
 create mode 100644 lib_cjs/findPage.js
 create mode 100644 lib_cjs/findPage.js.map
 create mode 100644 lib_cjs/findRangeAroundAyah.js
 create mode 100644 lib_cjs/findRangeAroundAyah.js.map
 create mode 100644 lib_cjs/findSurahByAyaid.js
 create mode 100644 lib_cjs/findSurahByAyaid.js.map
 create mode 100644 lib_cjs/getAyaCountinSura.js
 create mode 100644 lib_cjs/getAyaCountinSura.js.map
 create mode 100644 lib_cjs/getSurahMeta.js
 create mode 100644 lib_cjs/getSurahMeta.js.map
 create mode 100644 lib_cjs/isAyahJuzFirst.js
 create mode 100644 lib_cjs/isAyahJuzFirst.js.map
 create mode 100644 lib_cjs/isAyahPageFirst.js
 create mode 100644 lib_cjs/isAyahPageFirst.js.map
 create mode 100644 lib_cjs/juzList.js
 create mode 100644 lib_cjs/juzList.js.map
 create mode 100644 lib_cjs/lists/hizbList.js
 create mode 100644 lib_cjs/lists/hizbList.js.map
 create mode 100644 lib_cjs/lists/juzList.js
 create mode 100644 lib_cjs/lists/juzList.js.map
 create mode 100644 lib_cjs/lists/manzilList.js
 create mode 100644 lib_cjs/lists/manzilList.js.map
 create mode 100644 lib_cjs/lists/pageList.js
 create mode 100644 lib_cjs/lists/pageList.js.map
 create mode 100644 lib_cjs/lists/rukuList.js
 create mode 100644 lib_cjs/lists/rukuList.js.map
 create mode 100644 lib_cjs/lists/sajdaList.js
 create mode 100644 lib_cjs/lists/sajdaList.js.map
 create mode 100644 lib_cjs/lists/surahList.js
 create mode 100644 lib_cjs/lists/surahList.js.map
 create mode 100644 lib_cjs/manzilList.js
 create mode 100644 lib_cjs/manzilList.js.map
 create mode 100644 lib_cjs/nextAyah.js
 create mode 100644 lib_cjs/nextAyah.js.map
 create mode 100644 lib_cjs/pageMeta.js
 create mode 100644 lib_cjs/pageMeta.js.map
 create mode 100644 lib_cjs/prevAyah.js
 create mode 100644 lib_cjs/prevAyah.js.map
 create mode 100644 lib_cjs/sajdaList.js
 create mode 100644 lib_cjs/sajdaList.js.map
 create mode 100644 lib_cjs/utils.js
 create mode 100644 lib_cjs/utils.js.map
 create mode 100644 lib_es/checkValidAyahId.js
 create mode 100644 lib_es/checkValidAyahId.js.map
 create mode 100644 lib_es/checkValidSurah.js
 create mode 100644 lib_es/checkValidSurah.js.map
 create mode 100644 lib_es/checkValidSurahAyah.js
 create mode 100644 lib_es/checkValidSurahAyah.js.map
 create mode 100644 lib_es/findAyaidBySurah.js
 create mode 100644 lib_es/findAyaidBySurah.js.map
 create mode 100644 lib_es/findJuz.js
 create mode 100644 lib_es/findJuz.js.map
 create mode 100644 lib_es/findJuzAndShift.js
 create mode 100644 lib_es/findJuzAndShift.js.map
 create mode 100644 lib_es/findJuzByAyaid.js
 create mode 100644 lib_es/findJuzByAyaid.js.map
 create mode 100644 lib_es/findJuzHizb.js
 create mode 100644 lib_es/findJuzHizb.js.map
 create mode 100644 lib_es/findJuzHizbByAyaid.js
 create mode 100644 lib_es/findJuzHizbByAyaid.js.map
 create mode 100644 lib_es/findJuzMetaBySurah.js
 create mode 100644 lib_es/findJuzMetaBySurah.js.map
 create mode 100644 lib_es/findPage.js
 create mode 100644 lib_es/findPage.js.map
 create mode 100644 lib_es/findRangeAroundAyah.js
 create mode 100644 lib_es/findRangeAroundAyah.js.map
 create mode 100644 lib_es/findSurahByAyaid.js
 create mode 100644 lib_es/findSurahByAyaid.js.map
 create mode 100644 lib_es/getAyaCountinSura.js
 create mode 100644 lib_es/getAyaCountinSura.js.map
 create mode 100644 lib_es/getSurahMeta.js
 create mode 100644 lib_es/getSurahMeta.js.map
 create mode 100644 lib_es/isAyahJuzFirst.js
 create mode 100644 lib_es/isAyahJuzFirst.js.map
 create mode 100644 lib_es/isAyahPageFirst.js
 create mode 100644 lib_es/isAyahPageFirst.js.map
 create mode 100644 lib_es/juzList.js
 create mode 100644 lib_es/juzList.js.map
 create mode 100644 lib_es/lists/hizbList.js
 create mode 100644 lib_es/lists/hizbList.js.map
 create mode 100644 lib_es/lists/juzList.js
 create mode 100644 lib_es/lists/juzList.js.map
 create mode 100644 lib_es/lists/manzilList.js
 create mode 100644 lib_es/lists/manzilList.js.map
 create mode 100644 lib_es/lists/pageList.js
 create mode 100644 lib_es/lists/pageList.js.map
 create mode 100644 lib_es/lists/rukuList.js
 create mode 100644 lib_es/lists/rukuList.js.map
 create mode 100644 lib_es/lists/sajdaList.js
 create mode 100644 lib_es/lists/sajdaList.js.map
 create mode 100644 lib_es/lists/surahList.js
 create mode 100644 lib_es/lists/surahList.js.map
 create mode 100644 lib_es/manzilList.js
 create mode 100644 lib_es/manzilList.js.map
 create mode 100644 lib_es/nextAyah.js
 create mode 100644 lib_es/nextAyah.js.map
 create mode 100644 lib_es/pageMeta.js
 create mode 100644 lib_es/pageMeta.js.map
 create mode 100644 lib_es/prevAyah.js
 create mode 100644 lib_es/prevAyah.js.map
 create mode 100644 lib_es/sajdaList.js
 create mode 100644 lib_es/sajdaList.js.map
 create mode 100644 lib_es/utils.js
 create mode 100644 lib_es/utils.js.map
 create mode 100644 src/checkValidAyahId.ts
 create mode 100644 src/checkValidSurah.ts
 create mode 100644 src/checkValidSurahAyah.ts
 create mode 100644 src/findAyaidBySurah.ts
 create mode 100644 src/findJuz.ts
 create mode 100644 src/findJuzAndShift.ts
 create mode 100644 src/findJuzByAyaid.ts
 create mode 100644 src/findJuzHizb.ts
 create mode 100644 src/findJuzHizbByAyaid.ts
 create mode 100644 src/findJuzMetaBySurah.ts
 create mode 100644 src/findPage.ts
 create mode 100644 src/findRangeAroundAyah.ts
 create mode 100644 src/findSurahByAyaid.ts
 create mode 100644 src/getAyaCountinSura.ts
 create mode 100644 src/getSurahMeta.ts
 create mode 100644 src/isAyahJuzFirst.ts
 create mode 100644 src/isAyahPageFirst.ts
 rename src/{ => lists}/hizbList.ts (94%)
 create mode 100644 src/lists/juzList.ts
 create mode 100644 src/lists/manzilList.ts
 rename src/{ => lists}/pageList.ts (99%)
 rename src/{ => lists}/rukuList.ts (98%)
 create mode 100644 src/lists/sajdaList.ts
 rename src/{ => lists}/surahList.ts (99%)
 create mode 100644 src/nextAyah.ts
 create mode 100644 src/pageMeta.ts
 create mode 100644 src/prevAyah.ts
 create mode 100644 src/utils.ts
 create mode 100644 tests/ayaStringSplitter.spec.ts
 create mode 100644 tests/checkValidAyahId.spec.ts
 create mode 100644 tests/checkValidSurah.spec.ts
 create mode 100644 tests/checkValidSurahAyah.spec.ts
 create mode 100644 tests/findAyaidBySurah.spec.ts
 create mode 100644 tests/findJuz.spec.ts
 create mode 100644 tests/findJuzAndShift.spec.ts
 create mode 100644 tests/findJuzByAyaid.spec.ts
 create mode 100644 tests/findJuzHizb.spec.ts
 create mode 100644 tests/findJuzHizbByAyaid.spec.ts
 create mode 100644 tests/findJuzMetaBySurah.spec.ts
 create mode 100644 tests/findPage.spec.ts
 create mode 100644 tests/findRangeAroundAyah.spec.ts
 create mode 100644 tests/findSurahByAyaid.spec.ts
 create mode 100644 tests/getAyaCountinSura.spec.ts
 create mode 100644 tests/getSurahMeta.spec.ts
 create mode 100644 tests/isAyahJuzFirst.spec.ts
 create mode 100644 tests/isAyahPageFirst.spec.ts
 create mode 100644 tests/nextAyah.spec.ts
 create mode 100644 tests/pageMeta.spec.ts
 create mode 100644 tests/prevAyah.spec.ts
 create mode 100644 types/checkValidAyahId.d.ts
 create mode 100644 types/checkValidSurah.d.ts
 create mode 100644 types/checkValidSurahAyah.d.ts
 create mode 100644 types/findAyaidBySurah.d.ts
 create mode 100644 types/findJuz.d.ts
 create mode 100644 types/findJuzAndShift.d.ts
 create mode 100644 types/findJuzByAyaid.d.ts
 create mode 100644 types/findJuzHizb.d.ts
 create mode 100644 types/findJuzHizbByAyaid.d.ts
 create mode 100644 types/findJuzMetaBySurah.d.ts
 create mode 100644 types/findPage.d.ts
 create mode 100644 types/findRangeAroundAyah.d.ts
 create mode 100644 types/findSurahByAyaid.d.ts
 create mode 100644 types/getAyaCountinSura.d.ts
 create mode 100644 types/getSurahMeta.d.ts
 create mode 100644 types/isAyahJuzFirst.d.ts
 create mode 100644 types/isAyahPageFirst.d.ts
 create mode 100644 types/juzList.d.ts
 create mode 100644 types/lists/hizbList.d.ts
 create mode 100644 types/lists/juzList.d.ts
 create mode 100644 types/lists/manzilList.d.ts
 create mode 100644 types/lists/pageList.d.ts
 create mode 100644 types/lists/rukuList.d.ts
 create mode 100644 types/lists/sajdaList.d.ts
 create mode 100644 types/lists/surahList.d.ts
 create mode 100644 types/manzilList.d.ts
 create mode 100644 types/nextAyah.d.ts
 create mode 100644 types/pageMeta.d.ts
 create mode 100644 types/prevAyah.d.ts
 create mode 100644 types/sajdaList.d.ts
 create mode 100644 types/utils.d.ts

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5cfa0cf..91cde1d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
 
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
+### [2.5.1](https://github.com/quran-center/quran-meta/compare/v2.4.13...v2.4.15) (2022-11-13)
+update dependencies 
+switch from jest to vitest
+
 ### [2.4.15](https://github.com/quran-center/quran-meta/compare/v2.4.13...v2.4.15) (2022-11-13)
 
 ### [2.4.13](https://github.com/quran-center/quran-meta/compare/v2.4.12...v2.4.13) (2022-11-13)
diff --git a/dist/quran-meta.common.js b/dist/quran-meta.common.js
index b6839f3..7c15dc5 100644
--- a/dist/quran-meta.common.js
+++ b/dist/quran-meta.common.js
@@ -1,44 +1,11 @@
 /*! 
- * Quran Meta library 2.4.15
+ * Quran Meta library 2.5.1
  *
  * Released under the MIT license
  */
 
 'use strict';
 
-/******************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-
-function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-}
-
-var meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
 var suraNames$1 = [
     [],
     ["Al-Faatiha", "The Opening"],
@@ -275,6 +242,69 @@ var suraNames = [
     ["Ан-Нас", "Люди"],
 ];
 
+var 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,
+];
+
+var meta = Object.freeze({
+    numAyas: 6236,
+    numSuras: 114,
+    numPages: 604,
+    numJuzs: 30,
+    manzilCount: 7,
+});
+
+function checkValidSurah(surah, checkOnly) {
+    if (checkOnly === void 0) { checkOnly = false; }
+    if (surah < 1 || surah > meta.numSuras) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    }
+    return true;
+}
+
 var SuraList = [
     [-1, -1, -1, -1, "", false, -1],
     [0, 7, 5, 1, "الفاتحة", true, 1],
@@ -394,6 +424,110 @@ var SuraList = [
     [6236, 0, -1, -1, "", false, -1],
 ];
 
+function getSurahMeta(surah) {
+    checkValidSurah(surah);
+    return SuraList[surah];
+}
+
+function checkValidSurahAyah(surah, ayah, checkOnly) {
+    if (checkOnly === void 0) { checkOnly = false; }
+    if (!checkValidSurah(surah, checkOnly))
+        return false;
+    var _a = getSurahMeta(surah); _a[0]; var ayahCount = _a[1];
+    if (ayah < 1 || ayah > ayahCount) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Ayah must be between 1 and " + ayahCount);
+    }
+    return true;
+}
+
+function ayaStringSplitter(str) {
+    var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
+    var surah = parseInt(surahStr, 10);
+    if (isNaN(surah)) {
+        throw "Error in surah format " + str;
+    }
+    if (!ayahsStr) {
+        throw "Error in data " + str;
+    }
+    var ayahs;
+    if (ayahsStr.includes("-")) {
+        ayahs = ayahsStr.split("-").map(function (a) {
+            var ayah = parseInt(a, 10);
+            if (isNaN(ayah) || ayah === 0) {
+                throw "Error in ayah " + a;
+            }
+            return ayah;
+        });
+        if (ayahs[0] > ayahs[1])
+            throw "Error in ayah range " + str;
+    }
+    else {
+        ayahs = parseInt(ayahsStr, 10);
+        if (isNaN(ayahs) || ayahs === 0) {
+            throw "Error in data " + str;
+        }
+        checkValidSurahAyah(surah, ayahs);
+    }
+    return [surah, ayahs];
+}
+
+function checkValidAyahId(ayaId) {
+    if (ayaId < 1 || ayaId > meta.numAyas)
+        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
+    return true;
+}
+
+function findAyaidBySurah(surah, ayah) {
+    checkValidSurahAyah(surah, ayah);
+    var startAyahId = getSurahMeta(surah)[0];
+    return startAyahId + ayah;
+}
+
+var 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,
+];
+
+function findJuzByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
+}
+
+function findJuz(surah, ayah, ayahMode) {
+    if (ayah === void 0) { ayah = 1; }
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
+    return findJuzByAyaid(ayahId);
+}
+
+function findSurahByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
+    return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+
+function findJuzAndShift(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    var juz = findJuzByAyaid(ayahId);
+    var leftAyahId = JuzList[juz];
+    if (ayahMode)
+        surah = findSurahByAyaid(ayahId)[0];
+    var surahStartAyahId = SuraList[surah][0];
+    return {
+        juz: juz,
+        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+        leftAyahId: leftAyahId
+    };
+}
+
 var 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,
@@ -415,50 +549,37 @@ var HizbQuarterList = [
     5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
 ];
 
-var 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,
-];
+function findJuzHizbByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    var juz = findJuzByAyaid(ayaId);
+    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
+    return { juz: juz, hizb: id % 8 || 8, id: id };
+}
+
+function findJuzHizb(surah, ayah, ayahMode) {
+    if (ayah === void 0) { ayah = 1; }
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return findJuzHizbByAyaid(ayahId);
+}
+
+function findJuzMetaBySurah(surah, ayah) {
+    if (ayah === void 0) { ayah = 1; }
+    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
+    var rightJuz = leftjuz;
+    while (rightJuz < meta.numJuzs &&
+        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
+        rightJuz++;
+    return {
+        leftjuz: leftjuz,
+        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
+        rightJuz: rightJuz,
+        leftAyahId: leftAyahId,
+        rightAyahId: JuzList[rightJuz + 1],
+    };
+}
 
 var PageList = [
     0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
@@ -508,42 +629,44 @@ var PageList = [
     6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
 ];
 
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-    if (!ayahs) {
-        throw "Error in data " + str;
+function findPage(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
+}
+
+function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    switch (mode) {
+        case "juz": {
+            var juz = findJuzByAyaid(ayahId);
+            return [JuzList[juz], JuzList[juz + 1] - 1];
+        }
+        case "surah": {
+            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+        }
+        case "ayah": {
+            return [ayahId, ayahId];
+        }
+        case "page": {
+            var page = findPage(-1, ayahId, true);
+            return [PageList[page], PageList[page + 1] - 1];
+        }
+        case "all":
+        default:
+            return [1, meta.numAyas];
     }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
 }
 
-var 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,
-];
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-var SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
+function getAyaCountinSura(surah) {
+    return getSurahMeta(surah)[1];
+}
+
 function binarySearch(ar, el, compare_fn) {
     if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
     var m = 0;
@@ -563,53 +686,7 @@ function binarySearch(ar, el, compare_fn) {
     }
     return -m - 1;
 }
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
+
 function isAyahJuzFirst(surah, ayah, ayahMode) {
     if (ayahMode === void 0) { ayahMode = false; }
     var ayahId = ayahMode
@@ -617,6 +694,7 @@ function isAyahJuzFirst(surah, ayah, ayahMode) {
         : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
     return binarySearch(JuzList, ayahId);
 }
+
 function isAyahPageFirst(surah, ayah, ayahMode) {
     if (ayahMode === void 0) { ayahMode = false; }
     var ayahId = ayahMode
@@ -624,66 +702,66 @@ function isAyahPageFirst(surah, ayah, ayahMode) {
         : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
     return binarySearch(PageList, ayahId);
 }
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (surah < 0)
-        surah = findSurahByAyaid(leftAyahId)[0];
-    var surahStartAyahId = SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId,
-    };
-}
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-function findAyaidBySurah(surah, ayah) {
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
+
+var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+
+var SajdaList = [
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"],
+];
+
 function nextAyah(surah, ayah) {
     if (surah < 1 || surah > meta.numSuras)
         throw new RangeError("Surah must be between 1 and " + meta.numSuras);
     var ayaid = findAyaidBySurah(surah, ayah);
     return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
 }
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+
+/******************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
+
+
+function __spreadArray(to, from, pack) {
+    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+        if (ar || !(i in from)) {
+            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+            ar[i] = from[i];
+        }
+    }
+    return to.concat(ar || Array.prototype.slice.call(from));
 }
+
+typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
+    var e = new Error(message);
+    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+};
+
 function pageMeta(pageNum) {
     if (pageNum < 1 || pageNum > meta.numPages)
         throw new RangeError("pagenum must be between 1 and " + meta.numPages);
@@ -697,30 +775,11 @@ function pageMeta(pageNum) {
         last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
     };
 }
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
+
+function prevAyah(surah, ayah) {
+    checkValidSurah(surah);
+    var ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
 }
 
 exports.HizbQuarterList = HizbQuarterList;
@@ -731,6 +790,9 @@ exports.RukuList = RukuList;
 exports.SajdaList = SajdaList;
 exports.SuraList = SuraList;
 exports.ayaStringSplitter = ayaStringSplitter;
+exports.checkValidAyahId = checkValidAyahId;
+exports.checkValidSurah = checkValidSurah;
+exports.checkValidSurahAyah = checkValidSurahAyah;
 exports.findAyaidBySurah = findAyaidBySurah;
 exports.findJuz = findJuz;
 exports.findJuzAndShift = findJuzAndShift;
diff --git a/dist/quran-meta.common.js.map b/dist/quran-meta.common.js.map
index 81d33a0..5fe3f35 100644
--- a/dist/quran-meta.common.js.map
+++ b/dist/quran-meta.common.js.map
@@ -1 +1 @@
-{"version":3,"file":"quran-meta.common.js","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@9.0.2_uxzoppybjjm3iv3alceonunahm/node_modules/tslib/tslib.es6.js","../src/const.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/surahList.ts","../src/hizbList.ts","../src/rukuList.ts","../src/pageList.ts","../src/ayaStringSplitter.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null],"names":["suraNames"],"mappings":"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I,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AClBrD,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AC1CjB,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;ACxCtD,SAAU,iBAA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"}
\ No newline at end of file
+{"version":3,"file":"quran-meta.common.js","sources":["../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/lists/rukuList.ts","../src/const.ts","../src/checkValidSurah.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/checkValidSurahAyah.ts","../src/ayaStringSplitter.ts","../src/checkValidAyahId.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/getAyaCountinSura.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../node_modules/.pnpm/@rollup+plugin-typescript@12.1.0_rollup@4.24.0_tslib@2.7.0_typescript@5.6.2/node_modules/tslib/tslib.es6.js","../src/pageMeta.ts","../src/prevAyah.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n",null,null],"names":["suraNames"],"mappings":"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AAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE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AAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IA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AE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;SChC5C,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IACnE,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,MAAM,CAAV,EAAU,CAAC,GAAG,CAAC,CAAC;AACjD;;ACqBM,SAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,QAAQ,IAAI;QACV,KAAK,KAAK,EAAE;AACV,YAAA,IAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAC;AACxC,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7C;QAED,KAAK,OAAO,EAAE;YACZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;QAED,KAAK,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzB;QACD,KAAK,MAAM,EAAE;YACX,IAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjD;AAED,QAAA,KAAK,KAAK,CAAC;AACX,QAAA;AACE,YAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;AACH;;AClEM,SAAU,iBAAiB,CAAC,KAAY,EAAA;AAC5C,IAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC;;SCFgB,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,UAA8D,EAAA;IAA9D,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAgD,GAAA,UAAA,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,CAAC,CAAA,EAAA,CAAA,EAAA;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;AACT,IAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AACrB,IAAA,OAAO,CAAC,IAAI,CAAC,EAAE;QACb,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,QAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;AAAM,aAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;aAAM;AACL,YAAA,OAAO,CAAC,CAAA;SACT;KACF;AACD,IAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf;;SCXc,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEvC;;SCXgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAExC;;ICxBa,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;ACSrE,IAAA,SAAS,GAAY;IAEhC,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;;;ACjBN,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvE,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqMA;AACO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAiGD;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF;;ACrTM,SAAU,QAAQ,CAAC,OAAa,EAAA;IAEpC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEnE,IAAA,IAAA,EAAwC,GAAA;QAC5C,QAAQ,CAAC,OAAO,CAAC;AACjB,QAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,KAAA,EAHM,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,QAGvB,CAAC;IAEF,OAAO;AACL,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;AAChC,QAAA,IAAI,oBAAM,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAC,IAAA,CAAA;KAC1C,CAAC;AACJ;;AChBgB,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[30]}
\ No newline at end of file
diff --git a/dist/quran-meta.esm.browser.js b/dist/quran-meta.esm.browser.js
index ccb3f43..b494d9c 100644
--- a/dist/quran-meta.esm.browser.js
+++ b/dist/quran-meta.esm.browser.js
@@ -1,17 +1,9 @@
 /*! 
- * Quran Meta library 2.4.15
+ * Quran Meta library 2.5.1
  *
  * Released under the MIT license
  */
 
-const meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
 const suraNames$1 = [
     [],
     ["Al-Faatiha", "The Opening"],
@@ -248,6 +240,68 @@ const suraNames = [
     ["Ан-Нас", "Люди"],
 ];
 
+const 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,
+];
+
+const meta = Object.freeze({
+    numAyas: 6236,
+    numSuras: 114,
+    numPages: 604,
+    numJuzs: 30,
+    manzilCount: 7,
+});
+
+function checkValidSurah(surah, checkOnly = false) {
+    if (surah < 1 || surah > meta.numSuras) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    }
+    return true;
+}
+
 const SuraList = [
     [-1, -1, -1, -1, "", false, -1],
     [0, 7, 5, 1, "الفاتحة", true, 1],
@@ -367,6 +421,106 @@ const SuraList = [
     [6236, 0, -1, -1, "", false, -1],
 ];
 
+function getSurahMeta(surah) {
+    checkValidSurah(surah);
+    return SuraList[surah];
+}
+
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+    if (!checkValidSurah(surah, checkOnly))
+        return false;
+    const [startAyahId, ayahCount] = getSurahMeta(surah);
+    if (ayah < 1 || ayah > ayahCount) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Ayah must be between 1 and " + ayahCount);
+    }
+    return true;
+}
+
+function ayaStringSplitter(str) {
+    const [surahStr, ayahsStr] = str.trim().split(":");
+    const surah = parseInt(surahStr, 10);
+    if (isNaN(surah)) {
+        throw "Error in surah format " + str;
+    }
+    if (!ayahsStr) {
+        throw "Error in data " + str;
+    }
+    let ayahs;
+    if (ayahsStr.includes("-")) {
+        ayahs = ayahsStr.split("-").map(a => {
+            const ayah = parseInt(a, 10);
+            if (isNaN(ayah) || ayah === 0) {
+                throw "Error in ayah " + a;
+            }
+            return ayah;
+        });
+        if (ayahs[0] > ayahs[1])
+            throw "Error in ayah range " + str;
+    }
+    else {
+        ayahs = parseInt(ayahsStr, 10);
+        if (isNaN(ayahs) || ayahs === 0) {
+            throw "Error in data " + str;
+        }
+        checkValidSurahAyah(surah, ayahs);
+    }
+    return [surah, ayahs];
+}
+
+function checkValidAyahId(ayaId) {
+    if (ayaId < 1 || ayaId > meta.numAyas)
+        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
+    return true;
+}
+
+function findAyaidBySurah(surah, ayah) {
+    checkValidSurahAyah(surah, ayah);
+    const [startAyahId] = getSurahMeta(surah);
+    return startAyahId + ayah;
+}
+
+const 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,
+];
+
+function findJuzByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    return JuzList.findIndex(x => x > ayaId) - 1;
+}
+
+function findJuz(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode
+        ? ayah
+        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
+    return findJuzByAyaid(ayahId);
+}
+
+function findSurahByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
+    return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+
+function findJuzAndShift(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    const juz = findJuzByAyaid(ayahId);
+    const leftAyahId = JuzList[juz];
+    if (ayahMode)
+        [surah] = findSurahByAyaid(ayahId);
+    const [surahStartAyahId] = SuraList[surah];
+    return {
+        juz,
+        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+        leftAyahId
+    };
+}
+
 const 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,
@@ -388,50 +542,34 @@ const HizbQuarterList = [
     5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
 ];
 
-const 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,
-];
+function findJuzHizbByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const juz = findJuzByAyaid(ayaId);
+    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
+    return { juz, hizb: id % 8 || 8, id };
+}
+
+function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return findJuzHizbByAyaid(ayahId);
+}
+
+function findJuzMetaBySurah(surah, ayah = 1) {
+    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
+    let rightJuz = leftjuz;
+    while (rightJuz < meta.numJuzs &&
+        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
+        rightJuz++;
+    return {
+        leftjuz,
+        ayahsBetweenJuzSurah,
+        rightJuz,
+        leftAyahId,
+        rightAyahId: JuzList[rightJuz + 1],
+    };
+}
 
 const PageList = [
     0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
@@ -481,42 +619,42 @@ const PageList = [
     6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
 ];
 
-function ayaStringSplitter(str) {
-    const [surah, ayahs] = str.trim().split(":");
-    if (!ayahs) {
-        throw "Error in data " + str;
+function findPage(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return PageList.findIndex(x => x > ayahId) - 1;
+}
+
+function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+    const ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    switch (mode) {
+        case "juz": {
+            const juz = findJuzByAyaid(ayahId);
+            return [JuzList[juz], JuzList[juz + 1] - 1];
+        }
+        case "surah": {
+            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+        }
+        case "ayah": {
+            return [ayahId, ayahId];
+        }
+        case "page": {
+            const page = findPage(-1, ayahId, true);
+            return [PageList[page], PageList[page + 1] - 1];
+        }
+        case "all":
+        default:
+            return [1, meta.numAyas];
     }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
 }
 
-const 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,
-];
-const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-const SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
+function getAyaCountinSura(surah) {
+    return getSurahMeta(surah)[1];
+}
+
 function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
     let m = 0;
     let n = ar.length - 1;
@@ -535,117 +673,48 @@ function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
     }
     return -m - 1;
 }
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly = false) {
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(x => x > ayaId) - 1;
-}
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const juz = findJuzByAyaid(ayaId);
-    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
-    return { juz, hizb: id % 8 || 8, id };
-}
-function findJuz(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-function findJuzHizb(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
+
 function isAyahJuzFirst(surah, ayah, ayahMode = false) {
     const ayahId = ayahMode
         ? (checkValidAyahId(ayah) && ayah)
         : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
     return binarySearch(JuzList, ayahId);
 }
+
 function isAyahPageFirst(surah, ayah, ayahMode = false) {
     const ayahId = ayahMode
         ? (checkValidAyahId(ayah) && ayah)
         : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
     return binarySearch(PageList, ayahId);
 }
-function findJuzAndShift(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    const juz = findJuzByAyaid(ayahId);
-    const leftAyahId = JuzList[juz];
-    if (surah < 0)
-        [surah] = findSurahByAyaid(leftAyahId);
-    const [surahStartAyahId] = SuraList[surah];
-    return {
-        juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId,
-    };
-}
-function findJuzMetaBySurah(surah, ayah = 1) {
-    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
-    let rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz,
-        ayahsBetweenJuzSurah,
-        rightJuz,
-        leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-function findPage(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(x => x > ayahId) - 1;
-}
-function findAyaidBySurah(surah, ayah) {
-    const [startAyahId] = getSurahMeta(surah);
-    return startAyahId + ayah;
-}
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
+
+const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+
+const SajdaList = [
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"],
+];
+
 function nextAyah(surah, ayah) {
     if (surah < 1 || surah > meta.numSuras)
         throw new RangeError("Surah must be between 1 and " + meta.numSuras);
     const ayaid = findAyaidBySurah(surah, ayah);
     return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
 }
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
+
 function pageMeta(pageNum) {
     if (pageNum < 1 || pageNum > meta.numPages)
         throw new RangeError("pagenum must be between 1 and " + meta.numPages);
@@ -659,29 +728,11 @@ function pageMeta(pageNum) {
         last: [...findSurahByAyaid(nextPage - 1)],
     };
 }
-function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            const juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            const page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
+
+function prevAyah(surah, ayah) {
+    checkValidSurah(surah);
+    const ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
 }
 
-export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
+export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/quran-meta.esm.browser.min.js b/dist/quran-meta.esm.browser.min.js
index 9a53d2f..47b889e 100644
--- a/dist/quran-meta.esm.browser.min.js
+++ b/dist/quran-meta.esm.browser.min.js
@@ -1 +1 @@
-const a=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7}),e=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],n=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]],r=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]],t=[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],h=[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],i=[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];function u(a){const[e,n]=a.trim().split(":");if(!n)throw"Error in data "+a;return[+e,n.includes("-")?n.split("-").map(Number):+n]}const o=[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],l=[0,1,670,1365,2030,2933,3789,4631,6237],s=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]];function A(a,e,n=((a,e)=>a-e)){let r=0,t=a.length-1;for(;r<=t;){const h=t+r>>1,i=n(e,a[h]);if(i>0)r=h+1;else{if(!(i<0))return h;t=h-1}}return-r-1}function T(e){if(e<1||e>a.numAyas)throw new RangeError("ayaid must be between 1 and "+a.numAyas);return!0}function m(e,n=!1){if(e<1||e>a.numSuras){if(n)return!1;throw new RangeError("Surah must be between 1 and "+a.numSuras)}return!0}function d(a){T(a);const e=r.findIndex((e=>e[0]>=a))-1;return e<0?[114,a-r[114][0]]:[e,a-r[e][0]]}function c(a){return T(a),o.findIndex((e=>e>a))-1}function f(a){T(a);const e=c(a),n=t.findIndex((e=>e>a))-1;return{juz:e,hizb:n%8||8,id:n}}function g(a,e=1,n=!1){return c(n?e:m(a)&&I(a,e))}function y(a,e=1,n=!1){return f(n?e:m(a)&&I(a,e))}function S(a,e,n=!1){const r=n?T(e)&&e:m(a)&&I(a,e);return A(o,r)}function b(a,e,n=!1){const r=n?T(e)&&e:m(a)&&I(a,e);return A(i,r)}function w(a,e,n=!1){const t=c(n?T(e)&&e:m(a)&&I(a,e)),h=o[t];a<0&&([a]=d(h));const[i]=r[a];return{juz:t,ayahsBetweenJuzSurah:i-h+1,leftAyahId:h}}function p(e,n=1){const{juz:r,ayahsBetweenJuzSurah:t,leftAyahId:h}=w(e,n);let i=r;for(;i<a.numJuzs&&d(o[i+1])[0]==e;)i++;return{leftjuz:r,ayahsBetweenJuzSurah:t,rightJuz:i,leftAyahId:h,rightAyahId:o[i+1]}}function M(a){return m(a),r[a]}function z(a,e,n=!1){const r=n?T(e)&&e:m(a)&&I(a,e);return i.findIndex((a=>a>r))-1}function I(a,e){const[n]=M(a);return n+e}function C(a){return M(a)[1]}function N(e,n){if(e<1||e>a.numSuras)throw new RangeError("Surah must be between 1 and "+a.numSuras);const r=I(e,n);return d(r==a.numAyas?1:r+1)}function j(e,n){m(e);const r=I(e,n);return d(1==r?a.numAyas:r-1)}function q(e){if(e<1||e>a.numPages)throw new RangeError("pagenum must be between 1 and "+a.numPages);const[n,r]=[i[e],i[e+1]];return{pageNum:e,first:d(n),last:[...d(r-1)]}}function H(e,n,r,t=!1){const h=t?n:m(e)&&I(e,n);switch(r){case"juz":{const a=c(h);return[o[a],o[a+1]-1]}case"surah":return[I(e,1),I(e+1,1)-1];case"ayah":return[h,h];case"page":{const a=z(-1,h,!0);return[i[a],i[a+1]-1]}default:return[1,a.numAyas]}}export{t as HizbQuarterList,o as JuzList,l as ManzilList,i as PageList,h as RukuList,s as SajdaList,r as SuraList,u as ayaStringSplitter,I as findAyaidBySurah,g as findJuz,w as findJuzAndShift,c as findJuzByAyaid,y as findJuzHizb,f as findJuzHizbByAyaid,p as findJuzMetaBySurah,z as findPage,H as findRangeAroundAyah,d as findSurahByAyaid,C as getAyaCountinSura,M as getSurahMeta,S as isAyahJuzFirst,b as isAyahPageFirst,a as meta,N as nextAyah,q as pageMeta,j as prevAyah,e as suraNamesEn,n as suraNamesRu};
+const a=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],e=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]],n=[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],r=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7});function t(a,e=!1){if(a<1||a>r.numSuras){if(e)return!1;throw new RangeError("Surah must be between 1 and "+r.numSuras)}return!0}const i=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]];function h(a){return t(a),i[a]}function o(a,e,n=!1){if(!t(a,n))return!1;const[r,i]=h(a);if(e<1||e>i){if(n)return!1;throw new RangeError("Ayah must be between 1 and "+i)}return!0}function u(a){const[e,n]=a.trim().split(":"),r=parseInt(e,10);if(isNaN(r))throw"Error in surah format "+a;if(!n)throw"Error in data "+a;let t;if(n.includes("-")){if(t=n.split("-").map((a=>{const e=parseInt(a,10);if(isNaN(e)||0===e)throw"Error in ayah "+a;return e})),t[0]>t[1])throw"Error in ayah range "+a}else{if(t=parseInt(n,10),isNaN(t)||0===t)throw"Error in data "+a;o(r,t)}return[r,t]}function s(a){if(a<1||a>r.numAyas)throw new RangeError("ayaid must be between 1 and "+r.numAyas);return!0}function l(a,e){o(a,e);const[n]=h(a);return n+e}const A=[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];function T(a){return s(a),A.findIndex((e=>e>a))-1}function m(a,e=1,n=!1){return T(n?e:o(a,e)&&l(a,e))}function d(a){s(a);const e=i.findIndex((e=>e[0]>=a))-1;return[e,a-i[e][0]]}function c(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e),h=T(r),o=A[h];n&&([a]=d(r));const[u]=i[a];return{juz:h,ayahsBetweenJuzSurah:u-o+1,leftAyahId:o}}const f=[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];function g(a){s(a);const e=T(a),n=f.findIndex((e=>e>a))-1;return{juz:e,hizb:n%8||8,id:n}}function y(a,e=1,n=!1){return g(n?e:t(a)&&l(a,e))}function w(a,e=1){const{juz:n,ayahsBetweenJuzSurah:t,leftAyahId:i}=c(a,e);let h=n;for(;h<r.numJuzs&&d(A[h+1])[0]==a;)h++;return{leftjuz:n,ayahsBetweenJuzSurah:t,rightJuz:h,leftAyahId:i,rightAyahId:A[h+1]}}const b=[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];function S(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e);return b.findIndex((a=>a>r))-1}function p(a,e,n,h=!1){const o=h?e:t(a)&&l(a,e);switch(n){case"juz":{const a=T(o);return[A[a],A[a+1]-1]}case"surah":return[i[a][0]+1,i[a+1][0]];case"ayah":return[o,o];case"page":{const a=S(-1,o,!0);return[b[a],b[a+1]-1]}default:return[1,r.numAyas]}}function M(a){return h(a)[1]}function z(a,e,n=(a,e)=>a-e){let r=0,t=a.length-1;for(;r<=t;){const i=t+r>>1,h=n(e,a[i]);if(h>0)r=i+1;else{if(!(h<0))return i;t=i-1}}return-r-1}function I(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e);return z(A,r)}function N(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e);return z(b,r)}const E=[0,1,670,1365,2030,2933,3789,4631,6237],C=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]];function j(a,e){if(a<1||a>r.numSuras)throw new RangeError("Surah must be between 1 and "+r.numSuras);const n=l(a,e);return d(n==r.numAyas?1:n+1)}function q(a){if(a<1||a>r.numPages)throw new RangeError("pagenum must be between 1 and "+r.numPages);const[e,n]=[b[a],b[a+1]];return{pageNum:a,first:d(e),last:[...d(n-1)]}}function H(a,e){t(a);const n=l(a,e);return d(1==n?r.numAyas:n-1)}export{f as HizbQuarterList,A as JuzList,E as ManzilList,b as PageList,n as RukuList,C as SajdaList,i as SuraList,u as ayaStringSplitter,s as checkValidAyahId,t as checkValidSurah,o as checkValidSurahAyah,l as findAyaidBySurah,m as findJuz,c as findJuzAndShift,T as findJuzByAyaid,y as findJuzHizb,g as findJuzHizbByAyaid,w as findJuzMetaBySurah,S as findPage,p as findRangeAroundAyah,d as findSurahByAyaid,M as getAyaCountinSura,h as getSurahMeta,I as isAyahJuzFirst,N as isAyahPageFirst,r as meta,j as nextAyah,q as pageMeta,H as prevAyah,a as suraNamesEn,e as suraNamesRu};
diff --git a/dist/quran-meta.esm.js b/dist/quran-meta.esm.js
index 6277a8f..782866b 100644
--- a/dist/quran-meta.esm.js
+++ b/dist/quran-meta.esm.js
@@ -1,42 +1,9 @@
 /*! 
- * Quran Meta library 2.4.15
+ * Quran Meta library 2.5.1
  *
  * Released under the MIT license
  */
 
-/******************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-
-function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-}
-
-var meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
 var suraNames$1 = [
     [],
     ["Al-Faatiha", "The Opening"],
@@ -273,6 +240,69 @@ var suraNames = [
     ["Ан-Нас", "Люди"],
 ];
 
+var 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,
+];
+
+var meta = Object.freeze({
+    numAyas: 6236,
+    numSuras: 114,
+    numPages: 604,
+    numJuzs: 30,
+    manzilCount: 7,
+});
+
+function checkValidSurah(surah, checkOnly) {
+    if (checkOnly === void 0) { checkOnly = false; }
+    if (surah < 1 || surah > meta.numSuras) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    }
+    return true;
+}
+
 var SuraList = [
     [-1, -1, -1, -1, "", false, -1],
     [0, 7, 5, 1, "الفاتحة", true, 1],
@@ -392,6 +422,110 @@ var SuraList = [
     [6236, 0, -1, -1, "", false, -1],
 ];
 
+function getSurahMeta(surah) {
+    checkValidSurah(surah);
+    return SuraList[surah];
+}
+
+function checkValidSurahAyah(surah, ayah, checkOnly) {
+    if (checkOnly === void 0) { checkOnly = false; }
+    if (!checkValidSurah(surah, checkOnly))
+        return false;
+    var _a = getSurahMeta(surah); _a[0]; var ayahCount = _a[1];
+    if (ayah < 1 || ayah > ayahCount) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Ayah must be between 1 and " + ayahCount);
+    }
+    return true;
+}
+
+function ayaStringSplitter(str) {
+    var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
+    var surah = parseInt(surahStr, 10);
+    if (isNaN(surah)) {
+        throw "Error in surah format " + str;
+    }
+    if (!ayahsStr) {
+        throw "Error in data " + str;
+    }
+    var ayahs;
+    if (ayahsStr.includes("-")) {
+        ayahs = ayahsStr.split("-").map(function (a) {
+            var ayah = parseInt(a, 10);
+            if (isNaN(ayah) || ayah === 0) {
+                throw "Error in ayah " + a;
+            }
+            return ayah;
+        });
+        if (ayahs[0] > ayahs[1])
+            throw "Error in ayah range " + str;
+    }
+    else {
+        ayahs = parseInt(ayahsStr, 10);
+        if (isNaN(ayahs) || ayahs === 0) {
+            throw "Error in data " + str;
+        }
+        checkValidSurahAyah(surah, ayahs);
+    }
+    return [surah, ayahs];
+}
+
+function checkValidAyahId(ayaId) {
+    if (ayaId < 1 || ayaId > meta.numAyas)
+        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
+    return true;
+}
+
+function findAyaidBySurah(surah, ayah) {
+    checkValidSurahAyah(surah, ayah);
+    var startAyahId = getSurahMeta(surah)[0];
+    return startAyahId + ayah;
+}
+
+var 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,
+];
+
+function findJuzByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
+}
+
+function findJuz(surah, ayah, ayahMode) {
+    if (ayah === void 0) { ayah = 1; }
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
+    return findJuzByAyaid(ayahId);
+}
+
+function findSurahByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
+    return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+
+function findJuzAndShift(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    var juz = findJuzByAyaid(ayahId);
+    var leftAyahId = JuzList[juz];
+    if (ayahMode)
+        surah = findSurahByAyaid(ayahId)[0];
+    var surahStartAyahId = SuraList[surah][0];
+    return {
+        juz: juz,
+        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+        leftAyahId: leftAyahId
+    };
+}
+
 var 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,
@@ -413,50 +547,37 @@ var HizbQuarterList = [
     5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
 ];
 
-var 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,
-];
+function findJuzHizbByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    var juz = findJuzByAyaid(ayaId);
+    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
+    return { juz: juz, hizb: id % 8 || 8, id: id };
+}
+
+function findJuzHizb(surah, ayah, ayahMode) {
+    if (ayah === void 0) { ayah = 1; }
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return findJuzHizbByAyaid(ayahId);
+}
+
+function findJuzMetaBySurah(surah, ayah) {
+    if (ayah === void 0) { ayah = 1; }
+    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
+    var rightJuz = leftjuz;
+    while (rightJuz < meta.numJuzs &&
+        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
+        rightJuz++;
+    return {
+        leftjuz: leftjuz,
+        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
+        rightJuz: rightJuz,
+        leftAyahId: leftAyahId,
+        rightAyahId: JuzList[rightJuz + 1],
+    };
+}
 
 var PageList = [
     0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
@@ -506,42 +627,44 @@ var PageList = [
     6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
 ];
 
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-    if (!ayahs) {
-        throw "Error in data " + str;
+function findPage(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
+}
+
+function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    switch (mode) {
+        case "juz": {
+            var juz = findJuzByAyaid(ayahId);
+            return [JuzList[juz], JuzList[juz + 1] - 1];
+        }
+        case "surah": {
+            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+        }
+        case "ayah": {
+            return [ayahId, ayahId];
+        }
+        case "page": {
+            var page = findPage(-1, ayahId, true);
+            return [PageList[page], PageList[page + 1] - 1];
+        }
+        case "all":
+        default:
+            return [1, meta.numAyas];
     }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
 }
 
-var 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,
-];
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-var SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
+function getAyaCountinSura(surah) {
+    return getSurahMeta(surah)[1];
+}
+
 function binarySearch(ar, el, compare_fn) {
     if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
     var m = 0;
@@ -561,53 +684,7 @@ function binarySearch(ar, el, compare_fn) {
     }
     return -m - 1;
 }
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
+
 function isAyahJuzFirst(surah, ayah, ayahMode) {
     if (ayahMode === void 0) { ayahMode = false; }
     var ayahId = ayahMode
@@ -615,6 +692,7 @@ function isAyahJuzFirst(surah, ayah, ayahMode) {
         : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
     return binarySearch(JuzList, ayahId);
 }
+
 function isAyahPageFirst(surah, ayah, ayahMode) {
     if (ayahMode === void 0) { ayahMode = false; }
     var ayahId = ayahMode
@@ -622,66 +700,66 @@ function isAyahPageFirst(surah, ayah, ayahMode) {
         : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
     return binarySearch(PageList, ayahId);
 }
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (surah < 0)
-        surah = findSurahByAyaid(leftAyahId)[0];
-    var surahStartAyahId = SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId,
-    };
-}
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-function findAyaidBySurah(surah, ayah) {
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
+
+var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+
+var SajdaList = [
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"],
+];
+
 function nextAyah(surah, ayah) {
     if (surah < 1 || surah > meta.numSuras)
         throw new RangeError("Surah must be between 1 and " + meta.numSuras);
     var ayaid = findAyaidBySurah(surah, ayah);
     return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
 }
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+
+/******************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
+
+
+function __spreadArray(to, from, pack) {
+    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+        if (ar || !(i in from)) {
+            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+            ar[i] = from[i];
+        }
+    }
+    return to.concat(ar || Array.prototype.slice.call(from));
 }
+
+typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
+    var e = new Error(message);
+    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+};
+
 function pageMeta(pageNum) {
     if (pageNum < 1 || pageNum > meta.numPages)
         throw new RangeError("pagenum must be between 1 and " + meta.numPages);
@@ -695,31 +773,12 @@ function pageMeta(pageNum) {
         last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
     };
 }
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
+
+function prevAyah(surah, ayah) {
+    checkValidSurah(surah);
+    var ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
 }
 
-export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
+export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
 //# sourceMappingURL=quran-meta.esm.js.map
diff --git a/dist/quran-meta.esm.js.map b/dist/quran-meta.esm.js.map
index 7d90c90..d2e3356 100644
--- a/dist/quran-meta.esm.js.map
+++ b/dist/quran-meta.esm.js.map
@@ -1 +1 @@
-{"version":3,"file":"quran-meta.esm.js","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@9.0.2_uxzoppybjjm3iv3alceonunahm/node_modules/tslib/tslib.es6.js","../src/const.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/surahList.ts","../src/hizbList.ts","../src/rukuList.ts","../src/pageList.ts","../src/ayaStringSplitter.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null],"names":["suraNames"],"mappings":"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EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AClBrD,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AC1CjB,IAAA,QAAQ,GAAa;AAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;ACxCtD,SAAU,iBAAiB,CAAC,GAAW,EAAA;AACrC,IAAA,IAAA,KAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAArC,KAAK,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,KAAK,QAAyB,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,gBAAgB,GAAG,GAAG,CAAA;AAC7B,KAAA;IACD,OAAO;AACL,QAAA,CAAC,KAAK;AACN,QAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;cACd,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAsB;cAClD,CAAC,KAAK;KACX,CAAA;AACH;;ACmBA,IAAM,OAAO,GAAa;IACxB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;EACvB;AAOK,IAAA,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC;AAoB5E,IAAM,SAAS,GAAY;IAEzB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;EACrB;AAeD,SAAS,YAAY,CACnB,EAAiB,EACjB,EAAU,EACV,UAA8D,EAAA;IAA9D,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAgD,GAAA,UAAA,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,CAAC,CAAA,EAAA,CAAA,EAAA;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;AACT,IAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,IAAI,CAAC,EAAE;QACb,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACV,SAAA;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACV,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,CAAA;AACT,SAAA;AACF,KAAA;AACD,IAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa,EAAA;IACrC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;QACnC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;AACrE,IAAA,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,KAAY,EAAE,SAAiB,EAAA;AAAjB,IAAA,IAAA,SAAA,KAAA,KAAA,CAAA,EAAA,EAAA,SAAiB,GAAA,KAAA,CAAA,EAAA;IACtD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;AACtC,QAAA,IAAI,SAAS;AAAE,YAAA,OAAO,KAAK,CAAA;QAC3B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;AACrE,KAAA;AACD,IAAA,OAAO,IAAI,CAAA;AACb,CAAC;AAMK,SAAU,gBAAgB,CAAC,KAAa,EAAA;IAC5C,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAEvB,IAAM,OAAO,GAAU,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAA,CAAC,GAAG,CAAC,CAAA;IACjE,OAAO,OAAO,GAAG,CAAC;AAChB,UAAE,CAAC,GAAG,EAAE,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,UAAE,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAMK,SAAU,cAAc,CAAC,KAAa,EAAA;IAC1C,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAEvB,IAAA,OAAO,OAAO,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,KAAK,CAAT,EAAS,CAAC,GAAG,CAAC,CAAA;AAC9C,CAAC;AAKK,SAAU,kBAAkB,CAAC,KAAa,EAAA;IAC9C,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAEvB,IAAA,IAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;AAEjC,IAAA,IAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,UAAA,CAAC,EAAA,EAAI,OAAA,CAAC,GAAG,KAAK,CAAA,EAAA,CAAC,GAAG,CAAC,CAAA;AACxD,IAAA,OAAO,EAAE,GAAG,EAAA,GAAA,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAA,EAAA,EAAE,CAAA;AACvC,CAAC;SAMe,OAAO,CAAC,KAAY,EAAE,IAAgB,EAAE,QAAgB,EAAA;AAAlC,IAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAgB,GAAA,CAAA,CAAA,EAAA;AAAE,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IACtE,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;SAMe,WAAW,CACzB,KAAY,EACZ,IAAgB,EAChB,QAAgB,EAAA;AADhB,IAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAgB,GAAA,CAAA,CAAA,EAAA;AAChB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;AACnC,CAAC;SAMe,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;AAEtC,CAAC;SAOe,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAEvC,CAAC;SASe,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAMhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,IAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;AAClC,IAAA,IAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC;AAAG,QAAA,KAAK,GAAI,gBAAgB,CAAC,UAAU,CAAC,GAAhC,CAAgC;AAC9C,IAAA,IAAA,gBAAgB,GAAI,QAAQ,CAAC,KAAK,CAAC,GAAnB,CAAmB;IAC1C,OAAO;AACL,QAAA,GAAG,EAAA,GAAA;AACH,QAAA,oBAAoB,EAAE,gBAAgB,GAAG,UAAU,GAAG,CAAC;AACvD,QAAA,UAAU,EAAA,UAAA;KACX,CAAA;AACH,CAAC;AASe,SAAA,kBAAkB,CAAC,KAAY,EAAE,IAAgB,EAAA;AAAhB,IAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAgB,GAAA,CAAA,CAAA,EAAA;AACzD,IAAA,IAAA,KAIF,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,EAHzB,OAAO,GAAA,EAAA,CAAA,GAAA,EACZ,oBAAoB,GAAA,EAAA,CAAA,oBAAA,EACpB,UAAU,gBACoB,CAAA;IAEhC,IAAI,QAAQ,GAAQ,OAAO,CAAA;AAC3B,IAAA,OACE,QAAQ,GAAG,IAAI,CAAC,OAAO;AACvB,QAAA,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;AAEnD,QAAA,QAAQ,EAAE,CAAA;IAEZ,OAAO;AACL,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,oBAAoB,EAAA,oBAAA;AACpB,QAAA,QAAQ,EAAA,QAAA;AACR,QAAA,UAAU,EAAA,UAAA;AACV,QAAA,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnC,CAAA;AACH,CAAC;AAMK,SAAU,YAAY,CAAC,KAAY,EAAA;IACvC,eAAe,CAAC,KAAK,CAAC,CAAA;AACtB,IAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;SAOe,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IACnE,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,MAAM,CAAV,EAAU,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAOe,SAAA,gBAAgB,CAAC,KAAY,EAAE,IAAY,EAAA;AAClD,IAAA,IAAA,WAAW,GAAI,YAAY,CAAC,KAAK,CAAC,GAAvB,CAAuB;IACzC,OAAO,WAAW,GAAG,IAAI,CAAA;AAC3B,CAAC;AAMK,SAAU,iBAAiB,CAAC,KAAY,EAAA;AAC5C,IAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAC;AAOe,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEtE,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC;AAOe,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,eAAe,CAAC,KAAK,CAAC,CAAA;IAEtB,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACnD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC;AAMK,SAAU,QAAQ,CAAC,OAAa,EAAA;IAEpC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;AAElE,IAAA,IAAA,EAAwC,GAAA;QAC5C,QAAQ,CAAC,OAAO,CAAC;AACjB,QAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,KAAA,EAHM,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,QAGvB,CAAA;IAED,OAAO;AACL,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;AAChC,QAAA,IAAI,oBAAM,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAC,IAAA,CAAA;KAC1C,CAAA;AACH,CAAC;AAkCK,SAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;AAEzE,IAAA,QAAQ,IAAI;QACV,KAAK,KAAK,EAAE;AACV,YAAA,IAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAA;AACvC,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5C,SAAA;QAED,KAAK,OAAO,EAAE;AACZ,YAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AACxE,SAAA;QAED,KAAK,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AACxB,SAAA;QACD,KAAK,MAAM,EAAE;YACX,IAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;AAC7C,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AAChD,SAAA;AAED,QAAA,KAAK,KAAK,CAAC;AACX,QAAA;AACE,YAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;AAC3B,KAAA;AACH;;;;"}
\ No newline at end of file
+{"version":3,"file":"quran-meta.esm.js","sources":["../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/lists/rukuList.ts","../src/const.ts","../src/checkValidSurah.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/checkValidSurahAyah.ts","../src/ayaStringSplitter.ts","../src/checkValidAyahId.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/getAyaCountinSura.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../node_modules/.pnpm/@rollup+plugin-typescript@12.1.0_rollup@4.24.0_tslib@2.7.0_typescript@5.6.2/node_modules/tslib/tslib.es6.js","../src/pageMeta.ts","../src/prevAyah.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n",null,null],"names":["suraNames"],"mappings":"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E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,I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G,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI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,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;SChC5C,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IACnE,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,MAAM,CAAV,EAAU,CAAC,GAAG,CAAC,CAAC;AACjD;;ACqBM,SAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,QAAQ,IAAI;QACV,KAAK,KAAK,EAAE;AACV,YAAA,IAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAC;AACxC,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7C;QAED,KAAK,OAAO,EAAE;YACZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;QAED,KAAK,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzB;QACD,KAAK,MAAM,EAAE;YACX,IAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjD;AAED,QAAA,KAAK,KAAK,CAAC;AACX,QAAA;AACE,YAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;AACH;;AClEM,SAAU,iBAAiB,CAAC,KAAY,EAAA;AAC5C,IAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC;;SCFgB,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,UAA8D,EAAA;IAA9D,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAgD,GAAA,UAAA,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,CAAC,CAAA,EAAA,CAAA,EAAA;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;AACT,IAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AACrB,IAAA,OAAO,CAAC,IAAI,CAAC,EAAE;QACb,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,QAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;AAAM,aAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;aAAM;AACL,YAAA,OAAO,CAAC,CAAA;SACT;KACF;AACD,IAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf;;SCXc,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEvC;;SCXgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAExC;;ICxBa,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;ACSrE,IAAA,SAAS,GAAY;IAEhC,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;;;ACjBN,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvE,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqMA;AACO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAiGD;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF;;ACrTM,SAAU,QAAQ,CAAC,OAAa,EAAA;IAEpC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEnE,IAAA,IAAA,EAAwC,GAAA;QAC5C,QAAQ,CAAC,OAAO,CAAC;AACjB,QAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,KAAA,EAHM,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,QAGvB,CAAC;IAEF,OAAO;AACL,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;AAChC,QAAA,IAAI,oBAAM,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAC,IAAA,CAAA;KAC1C,CAAC;AACJ;;AChBgB,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE;;;;","x_google_ignoreList":[30]}
\ No newline at end of file
diff --git a/dist/quran-meta.js b/dist/quran-meta.js
index 6dbaab3..478ebed 100644
--- a/dist/quran-meta.js
+++ b/dist/quran-meta.js
@@ -1,5 +1,5 @@
 /*! 
- * Quran Meta library 2.4.15
+ * Quran Meta library 2.5.1
  *
  * Released under the MIT license
  */
@@ -10,39 +10,6 @@
     (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.quranMeta = {}));
 })(this, (function (exports) { 'use strict';
 
-    /******************************************************************************
-    Copyright (c) Microsoft Corporation.
-
-    Permission to use, copy, modify, and/or distribute this software for any
-    purpose with or without fee is hereby granted.
-
-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-    PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */
-
-    function __spreadArray(to, from, pack) {
-        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-            if (ar || !(i in from)) {
-                if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-                ar[i] = from[i];
-            }
-        }
-        return to.concat(ar || Array.prototype.slice.call(from));
-    }
-
-    var meta = Object.freeze({
-        numAyas: 6236,
-        numSuras: 114,
-        numPages: 604,
-        numJuzs: 30,
-        manzilCount: 7,
-    });
-
     var suraNames$1 = [
         [],
         ["Al-Faatiha", "The Opening"],
@@ -279,6 +246,69 @@
         ["Ан-Нас", "Люди"],
     ];
 
+    var 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,
+    ];
+
+    var meta = Object.freeze({
+        numAyas: 6236,
+        numSuras: 114,
+        numPages: 604,
+        numJuzs: 30,
+        manzilCount: 7,
+    });
+
+    function checkValidSurah(surah, checkOnly) {
+        if (checkOnly === void 0) { checkOnly = false; }
+        if (surah < 1 || surah > meta.numSuras) {
+            if (checkOnly)
+                return false;
+            throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+        }
+        return true;
+    }
+
     var SuraList = [
         [-1, -1, -1, -1, "", false, -1],
         [0, 7, 5, 1, "الفاتحة", true, 1],
@@ -398,6 +428,110 @@
         [6236, 0, -1, -1, "", false, -1],
     ];
 
+    function getSurahMeta(surah) {
+        checkValidSurah(surah);
+        return SuraList[surah];
+    }
+
+    function checkValidSurahAyah(surah, ayah, checkOnly) {
+        if (checkOnly === void 0) { checkOnly = false; }
+        if (!checkValidSurah(surah, checkOnly))
+            return false;
+        var _a = getSurahMeta(surah); _a[0]; var ayahCount = _a[1];
+        if (ayah < 1 || ayah > ayahCount) {
+            if (checkOnly)
+                return false;
+            throw new RangeError("Ayah must be between 1 and " + ayahCount);
+        }
+        return true;
+    }
+
+    function ayaStringSplitter(str) {
+        var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
+        var surah = parseInt(surahStr, 10);
+        if (isNaN(surah)) {
+            throw "Error in surah format " + str;
+        }
+        if (!ayahsStr) {
+            throw "Error in data " + str;
+        }
+        var ayahs;
+        if (ayahsStr.includes("-")) {
+            ayahs = ayahsStr.split("-").map(function (a) {
+                var ayah = parseInt(a, 10);
+                if (isNaN(ayah) || ayah === 0) {
+                    throw "Error in ayah " + a;
+                }
+                return ayah;
+            });
+            if (ayahs[0] > ayahs[1])
+                throw "Error in ayah range " + str;
+        }
+        else {
+            ayahs = parseInt(ayahsStr, 10);
+            if (isNaN(ayahs) || ayahs === 0) {
+                throw "Error in data " + str;
+            }
+            checkValidSurahAyah(surah, ayahs);
+        }
+        return [surah, ayahs];
+    }
+
+    function checkValidAyahId(ayaId) {
+        if (ayaId < 1 || ayaId > meta.numAyas)
+            throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
+        return true;
+    }
+
+    function findAyaidBySurah(surah, ayah) {
+        checkValidSurahAyah(surah, ayah);
+        var startAyahId = getSurahMeta(surah)[0];
+        return startAyahId + ayah;
+    }
+
+    var 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,
+    ];
+
+    function findJuzByAyaid(ayaId) {
+        checkValidAyahId(ayaId);
+        return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
+    }
+
+    function findJuz(surah, ayah, ayahMode) {
+        if (ayah === void 0) { ayah = 1; }
+        if (ayahMode === void 0) { ayahMode = false; }
+        var ayahId = ayahMode
+            ? ayah
+            : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
+        return findJuzByAyaid(ayahId);
+    }
+
+    function findSurahByAyaid(ayaId) {
+        checkValidAyahId(ayaId);
+        var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
+        return [suraNum, ayaId - SuraList[suraNum][0]];
+    }
+
+    function findJuzAndShift(surah, ayah, ayahMode) {
+        if (ayahMode === void 0) { ayahMode = false; }
+        var ayahId = ayahMode
+            ? (checkValidAyahId(ayah) && ayah)
+            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+        var juz = findJuzByAyaid(ayahId);
+        var leftAyahId = JuzList[juz];
+        if (ayahMode)
+            surah = findSurahByAyaid(ayahId)[0];
+        var surahStartAyahId = SuraList[surah][0];
+        return {
+            juz: juz,
+            ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+            leftAyahId: leftAyahId
+        };
+    }
+
     var 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,
@@ -419,50 +553,37 @@
         5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237,
     ];
 
-    var 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,
-    ];
+    function findJuzHizbByAyaid(ayaId) {
+        checkValidAyahId(ayaId);
+        var juz = findJuzByAyaid(ayaId);
+        var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
+        return { juz: juz, hizb: id % 8 || 8, id: id };
+    }
+
+    function findJuzHizb(surah, ayah, ayahMode) {
+        if (ayah === void 0) { ayah = 1; }
+        if (ayahMode === void 0) { ayahMode = false; }
+        var ayahId = ayahMode
+            ? ayah
+            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+        return findJuzHizbByAyaid(ayahId);
+    }
+
+    function findJuzMetaBySurah(surah, ayah) {
+        if (ayah === void 0) { ayah = 1; }
+        var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
+        var rightJuz = leftjuz;
+        while (rightJuz < meta.numJuzs &&
+            findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
+            rightJuz++;
+        return {
+            leftjuz: leftjuz,
+            ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
+            rightJuz: rightJuz,
+            leftAyahId: leftAyahId,
+            rightAyahId: JuzList[rightJuz + 1],
+        };
+    }
 
     var PageList = [
         0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
@@ -512,42 +633,44 @@
         6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237,
     ];
 
-    function ayaStringSplitter(str) {
-        var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-        if (!ayahs) {
-            throw "Error in data " + str;
+    function findPage(surah, ayah, ayahMode) {
+        if (ayahMode === void 0) { ayahMode = false; }
+        var ayahId = ayahMode
+            ? (checkValidAyahId(ayah) && ayah)
+            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+        return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
+    }
+
+    function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
+        if (ayahMode === void 0) { ayahMode = false; }
+        var ayahId = ayahMode
+            ? ayah
+            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+        switch (mode) {
+            case "juz": {
+                var juz = findJuzByAyaid(ayahId);
+                return [JuzList[juz], JuzList[juz + 1] - 1];
+            }
+            case "surah": {
+                return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+            }
+            case "ayah": {
+                return [ayahId, ayahId];
+            }
+            case "page": {
+                var page = findPage(-1, ayahId, true);
+                return [PageList[page], PageList[page + 1] - 1];
+            }
+            case "all":
+            default:
+                return [1, meta.numAyas];
         }
-        return [
-            +surah,
-            ayahs.includes("-")
-                ? ayahs.split("-").map(Number)
-                : +ayahs,
-        ];
     }
 
-    var 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,
-    ];
-    var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-    var SajdaList = [
-        [1160, "recommended"],
-        [1722, "recommended"],
-        [1951, "recommended"],
-        [2138, "recommended"],
-        [2308, "recommended"],
-        [2613, "recommended"],
-        [2672, "recommended"],
-        [2915, "recommended"],
-        [3185, "recommended"],
-        [3518, "obligatory"],
-        [3994, "recommended"],
-        [4256, "obligatory"],
-        [4846, "obligatory"],
-        [5905, "recommended"],
-        [6125, "obligatory"],
-    ];
+    function getAyaCountinSura(surah) {
+        return getSurahMeta(surah)[1];
+    }
+
     function binarySearch(ar, el, compare_fn) {
         if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
         var m = 0;
@@ -567,53 +690,7 @@
         }
         return -m - 1;
     }
-    function checkValidAyahId(ayaId) {
-        if (ayaId < 1 || ayaId > meta.numAyas)
-            throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-        return true;
-    }
-    function checkValidSurah(surah, checkOnly) {
-        if (checkOnly === void 0) { checkOnly = false; }
-        if (surah < 1 || surah > meta.numSuras) {
-            if (checkOnly)
-                return false;
-            throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-        }
-        return true;
-    }
-    function findSurahByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-        return suraNum < 0
-            ? [114, ayaId - SuraList[114][0]]
-            : [suraNum, ayaId - SuraList[suraNum][0]];
-    }
-    function findJuzByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-    }
-    function findJuzHizbByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        var juz = findJuzByAyaid(ayaId);
-        var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-        return { juz: juz, hizb: id % 8 || 8, id: id };
-    }
-    function findJuz(surah, ayah, ayahMode) {
-        if (ayah === void 0) { ayah = 1; }
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return findJuzByAyaid(ayahId);
-    }
-    function findJuzHizb(surah, ayah, ayahMode) {
-        if (ayah === void 0) { ayah = 1; }
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return findJuzHizbByAyaid(ayahId);
-    }
+
     function isAyahJuzFirst(surah, ayah, ayahMode) {
         if (ayahMode === void 0) { ayahMode = false; }
         var ayahId = ayahMode
@@ -621,6 +698,7 @@
             : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
         return binarySearch(JuzList, ayahId);
     }
+
     function isAyahPageFirst(surah, ayah, ayahMode) {
         if (ayahMode === void 0) { ayahMode = false; }
         var ayahId = ayahMode
@@ -628,66 +706,66 @@
             : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
         return binarySearch(PageList, ayahId);
     }
-    function findJuzAndShift(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        var juz = findJuzByAyaid(ayahId);
-        var leftAyahId = JuzList[juz];
-        if (surah < 0)
-            surah = findSurahByAyaid(leftAyahId)[0];
-        var surahStartAyahId = SuraList[surah][0];
-        return {
-            juz: juz,
-            ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-            leftAyahId: leftAyahId,
-        };
-    }
-    function findJuzMetaBySurah(surah, ayah) {
-        if (ayah === void 0) { ayah = 1; }
-        var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-        var rightJuz = leftjuz;
-        while (rightJuz < meta.numJuzs &&
-            findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-            rightJuz++;
-        return {
-            leftjuz: leftjuz,
-            ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-            rightJuz: rightJuz,
-            leftAyahId: leftAyahId,
-            rightAyahId: JuzList[rightJuz + 1],
-        };
-    }
-    function getSurahMeta(surah) {
-        checkValidSurah(surah);
-        return SuraList[surah];
-    }
-    function findPage(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-    }
-    function findAyaidBySurah(surah, ayah) {
-        var startAyahId = getSurahMeta(surah)[0];
-        return startAyahId + ayah;
-    }
-    function getAyaCountinSura(surah) {
-        return getSurahMeta(surah)[1];
-    }
+
+    var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+
+    var SajdaList = [
+        [1160, "recommended"],
+        [1722, "recommended"],
+        [1951, "recommended"],
+        [2138, "recommended"],
+        [2308, "recommended"],
+        [2613, "recommended"],
+        [2672, "recommended"],
+        [2915, "recommended"],
+        [3185, "recommended"],
+        [3518, "obligatory"],
+        [3994, "recommended"],
+        [4256, "obligatory"],
+        [4846, "obligatory"],
+        [5905, "recommended"],
+        [6125, "obligatory"],
+    ];
+
     function nextAyah(surah, ayah) {
         if (surah < 1 || surah > meta.numSuras)
             throw new RangeError("Surah must be between 1 and " + meta.numSuras);
         var ayaid = findAyaidBySurah(surah, ayah);
         return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
     }
-    function prevAyah(surah, ayah) {
-        checkValidSurah(surah);
-        var ayaid = findAyaidBySurah(surah, ayah);
-        return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+
+    /******************************************************************************
+    Copyright (c) Microsoft Corporation.
+
+    Permission to use, copy, modify, and/or distribute this software for any
+    purpose with or without fee is hereby granted.
+
+    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+    PERFORMANCE OF THIS SOFTWARE.
+    ***************************************************************************** */
+    /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
+
+
+    function __spreadArray(to, from, pack) {
+        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+            if (ar || !(i in from)) {
+                if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+                ar[i] = from[i];
+            }
+        }
+        return to.concat(ar || Array.prototype.slice.call(from));
     }
+
+    typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
+        var e = new Error(message);
+        return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+    };
+
     function pageMeta(pageNum) {
         if (pageNum < 1 || pageNum > meta.numPages)
             throw new RangeError("pagenum must be between 1 and " + meta.numPages);
@@ -701,30 +779,11 @@
             last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
         };
     }
-    function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        switch (mode) {
-            case "juz": {
-                var juz = findJuzByAyaid(ayahId);
-                return [JuzList[juz], JuzList[juz + 1] - 1];
-            }
-            case "surah": {
-                return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-            }
-            case "ayah": {
-                return [ayahId, ayahId];
-            }
-            case "page": {
-                var page = findPage(-1, ayahId, true);
-                return [PageList[page], PageList[page + 1] - 1];
-            }
-            case "all":
-            default:
-                return [1, meta.numAyas];
-        }
+
+    function prevAyah(surah, ayah) {
+        checkValidSurah(surah);
+        var ayaid = findAyaidBySurah(surah, ayah);
+        return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
     }
 
     exports.HizbQuarterList = HizbQuarterList;
@@ -735,6 +794,9 @@
     exports.SajdaList = SajdaList;
     exports.SuraList = SuraList;
     exports.ayaStringSplitter = ayaStringSplitter;
+    exports.checkValidAyahId = checkValidAyahId;
+    exports.checkValidSurah = checkValidSurah;
+    exports.checkValidSurahAyah = checkValidSurahAyah;
     exports.findAyaidBySurah = findAyaidBySurah;
     exports.findJuz = findJuz;
     exports.findJuzAndShift = findJuzAndShift;
diff --git a/dist/quran-meta.js.map b/dist/quran-meta.js.map
index e1a6b65..e8669eb 100644
--- a/dist/quran-meta.js.map
+++ b/dist/quran-meta.js.map
@@ -1 +1 @@
-{"version":3,"file":"quran-meta.js","sources":["../node_modules/.pnpm/@rollup+plugin-typescript@9.0.2_uxzoppybjjm3iv3alceonunahm/node_modules/tslib/tslib.es6.js","../src/const.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/surahList.ts","../src/hizbList.ts","../src/rukuList.ts","../src/pageList.ts","../src/ayaStringSplitter.ts","../src/index.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n",null,null,null,null,null,null,null,null,null],"names":["suraNames"],"mappings":"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,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AClBrD,QAAA,QAAQ,GAAa;IAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;AC1CjB,QAAA,QAAQ,GAAa;IAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;ICxCtD,SAAU,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"}
\ No newline at end of file
+{"version":3,"file":"quran-meta.js","sources":["../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/lists/rukuList.ts","../src/const.ts","../src/checkValidSurah.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/checkValidSurahAyah.ts","../src/ayaStringSplitter.ts","../src/checkValidAyahId.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/getAyaCountinSura.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../node_modules/.pnpm/@rollup+plugin-typescript@12.1.0_rollup@4.24.0_tslib@2.7.0_typescript@5.6.2/node_modules/tslib/tslib.es6.js","../src/pageMeta.ts","../src/prevAyah.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n",null,null],"names":["suraNames"],"mappings":"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AG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,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AG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAA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E,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE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","x_google_ignoreList":[30]}
\ No newline at end of file
diff --git a/dist/quran-meta.min.js b/dist/quran-meta.min.js
index 422a9b9..476df8d 100644
--- a/dist/quran-meta.min.js
+++ b/dist/quran-meta.min.js
@@ -1 +1 @@
-!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((a="undefined"!=typeof globalThis?globalThis:a||self).quranMeta={})}(this,(function(a){"use strict";function e(a,e,n){if(n||2===arguments.length)for(var r,i=0,t=e.length;i<t;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return a.concat(r||Array.prototype.slice.call(e))}var n=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7}),r=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]],i=[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],t=[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];var u=[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];function h(a,e,n){void 0===n&&(n=function(a,e){return a-e});for(var r=0,i=a.length-1;r<=i;){var t=i+r>>1,u=n(e,a[t]);if(u>0)r=t+1;else{if(!(u<0))return t;i=t-1}}return-r-1}function o(a){if(a<1||a>n.numAyas)throw new RangeError("ayaid must be between 1 and "+n.numAyas);return!0}function l(a,e){if(void 0===e&&(e=!1),a<1||a>n.numSuras){if(e)return!1;throw new RangeError("Surah must be between 1 and "+n.numSuras)}return!0}function A(a){o(a);var e=r.findIndex((function(e){return e[0]>=a}))-1;return e<0?[114,a-r[114][0]]:[e,a-r[e][0]]}function s(a){return o(a),u.findIndex((function(e){return e>a}))-1}function d(a){o(a);var e=s(a),n=i.findIndex((function(e){return e>a}))-1;return{juz:e,hizb:n%8||8,id:n}}function T(a,e,n){void 0===n&&(n=!1);var i=s(n?o(e)&&e:l(a)&&c(a,e)),t=u[i];return a<0&&(a=A(t)[0]),{juz:i,ayahsBetweenJuzSurah:r[a][0]-t+1,leftAyahId:t}}function f(a){return l(a),r[a]}function m(a,e,n){void 0===n&&(n=!1);var r=n?o(e)&&e:l(a)&&c(a,e);return t.findIndex((function(a){return a>r}))-1}function c(a,e){return f(a)[0]+e}a.HizbQuarterList=i,a.JuzList=u,a.ManzilList=[0,1,670,1365,2030,2933,3789,4631,6237],a.PageList=t,a.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],a.SajdaList=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]],a.SuraList=r,a.ayaStringSplitter=function(a){var e=a.trim().split(":"),n=e[0],r=e[1];if(!r)throw"Error in data "+a;return[+n,r.includes("-")?r.split("-").map(Number):+r]},a.findAyaidBySurah=c,a.findJuz=function(a,e,n){return void 0===e&&(e=1),void 0===n&&(n=!1),s(n?e:l(a)&&c(a,e))},a.findJuzAndShift=T,a.findJuzByAyaid=s,a.findJuzHizb=function(a,e,n){return void 0===e&&(e=1),void 0===n&&(n=!1),d(n?e:l(a)&&c(a,e))},a.findJuzHizbByAyaid=d,a.findJuzMetaBySurah=function(a,e){void 0===e&&(e=1);for(var r=T(a,e),i=r.juz,t=r.ayahsBetweenJuzSurah,h=r.leftAyahId,o=i;o<n.numJuzs&&A(u[o+1])[0]==a;)o++;return{leftjuz:i,ayahsBetweenJuzSurah:t,rightJuz:o,leftAyahId:h,rightAyahId:u[o+1]}},a.findPage=m,a.findRangeAroundAyah=function(a,e,r,i){void 0===i&&(i=!1);var h=i?e:l(a)&&c(a,e);switch(r){case"juz":var o=s(h);return[u[o],u[o+1]-1];case"surah":return[c(a,1),c(a+1,1)-1];case"ayah":return[h,h];case"page":var A=m(-1,h,!0);return[t[A],t[A+1]-1];default:return[1,n.numAyas]}},a.findSurahByAyaid=A,a.getAyaCountinSura=function(a){return f(a)[1]},a.getSurahMeta=f,a.isAyahJuzFirst=function(a,e,n){void 0===n&&(n=!1);var r=n?o(e)&&e:l(a)&&c(a,e);return h(u,r)},a.isAyahPageFirst=function(a,e,n){void 0===n&&(n=!1);var r=n?o(e)&&e:l(a)&&c(a,e);return h(t,r)},a.meta=n,a.nextAyah=function(a,e){if(a<1||a>n.numSuras)throw new RangeError("Surah must be between 1 and "+n.numSuras);var r=c(a,e);return A(r==n.numAyas?1:r+1)},a.pageMeta=function(a){if(a<1||a>n.numPages)throw new RangeError("pagenum must be between 1 and "+n.numPages);var r=[t[a],t[a+1]],i=r[1];return{pageNum:a,first:A(r[0]),last:e([],A(i-1),!0)}},a.prevAyah=function(a,e){l(a);var r=c(a,e);return A(1==r?n.numAyas:r-1)},a.suraNamesEn=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],a.suraNamesRu=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]]}));
+!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((a="undefined"!=typeof globalThis?globalThis:a||self).quranMeta={})}(this,(function(a){"use strict";var e=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7});function n(a,n){if(void 0===n&&(n=!1),a<1||a>e.numSuras){if(n)return!1;throw new RangeError("Surah must be between 1 and "+e.numSuras)}return!0}var r=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]];function i(a){return n(a),r[a]}function t(a,e,r){if(void 0===r&&(r=!1),!n(a,r))return!1;var t=i(a);t[0];var u=t[1];if(e<1||e>u){if(r)return!1;throw new RangeError("Ayah must be between 1 and "+u)}return!0}function u(a){if(a<1||a>e.numAyas)throw new RangeError("ayaid must be between 1 and "+e.numAyas);return!0}function h(a,e){return t(a,e),i(a)[0]+e}var o=[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];function l(a){return u(a),o.findIndex((function(e){return e>a}))-1}function s(a){u(a);var e=r.findIndex((function(e){return e[0]>=a}))-1;return[e,a-r[e][0]]}function A(a,e,i){void 0===i&&(i=!1);var t=i?u(e)&&e:n(a)&&h(a,e),A=l(t),d=o[A];return i&&(a=s(t)[0]),{juz:A,ayahsBetweenJuzSurah:r[a][0]-d+1,leftAyahId:d}}var d=[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];function f(a){u(a);var e=l(a),n=d.findIndex((function(e){return e>a}))-1;return{juz:e,hizb:n%8||8,id:n}}var T=[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];function m(a,e,r){void 0===r&&(r=!1);var i=r?u(e)&&e:n(a)&&h(a,e);return T.findIndex((function(a){return a>i}))-1}function c(a,e,n){void 0===n&&(n=function(a,e){return a-e});for(var r=0,i=a.length-1;r<=i;){var t=i+r>>1,u=n(e,a[t]);if(u>0)r=t+1;else{if(!(u<0))return t;i=t-1}}return-r-1}function y(a,e,n){if(n||2===arguments.length)for(var r,i=0,t=e.length;i<t;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return a.concat(r||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError,a.HizbQuarterList=d,a.JuzList=o,a.ManzilList=[0,1,670,1365,2030,2933,3789,4631,6237],a.PageList=T,a.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],a.SajdaList=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]],a.SuraList=r,a.ayaStringSplitter=function(a){var e,n=a.trim().split(":"),r=n[0],i=n[1],u=parseInt(r,10);if(isNaN(u))throw"Error in surah format "+a;if(!i)throw"Error in data "+a;if(i.includes("-")){if((e=i.split("-").map((function(a){var e=parseInt(a,10);if(isNaN(e)||0===e)throw"Error in ayah "+a;return e})))[0]>e[1])throw"Error in ayah range "+a}else{if(e=parseInt(i,10),isNaN(e)||0===e)throw"Error in data "+a;t(u,e)}return[u,e]},a.checkValidAyahId=u,a.checkValidSurah=n,a.checkValidSurahAyah=t,a.findAyaidBySurah=h,a.findJuz=function(a,e,n){return void 0===e&&(e=1),void 0===n&&(n=!1),l(n?e:t(a,e)&&h(a,e))},a.findJuzAndShift=A,a.findJuzByAyaid=l,a.findJuzHizb=function(a,e,r){return void 0===e&&(e=1),void 0===r&&(r=!1),f(r?e:n(a)&&h(a,e))},a.findJuzHizbByAyaid=f,a.findJuzMetaBySurah=function(a,n){void 0===n&&(n=1);for(var r=A(a,n),i=r.juz,t=r.ayahsBetweenJuzSurah,u=r.leftAyahId,h=i;h<e.numJuzs&&s(o[h+1])[0]==a;)h++;return{leftjuz:i,ayahsBetweenJuzSurah:t,rightJuz:h,leftAyahId:u,rightAyahId:o[h+1]}},a.findPage=m,a.findRangeAroundAyah=function(a,i,t,u){void 0===u&&(u=!1);var s=u?i:n(a)&&h(a,i);switch(t){case"juz":var A=l(s);return[o[A],o[A+1]-1];case"surah":return[r[a][0]+1,r[a+1][0]];case"ayah":return[s,s];case"page":var d=m(-1,s,!0);return[T[d],T[d+1]-1];default:return[1,e.numAyas]}},a.findSurahByAyaid=s,a.getAyaCountinSura=function(a){return i(a)[1]},a.getSurahMeta=i,a.isAyahJuzFirst=function(a,e,r){void 0===r&&(r=!1);var i=r?u(e)&&e:n(a)&&h(a,e);return c(o,i)},a.isAyahPageFirst=function(a,e,r){void 0===r&&(r=!1);var i=r?u(e)&&e:n(a)&&h(a,e);return c(T,i)},a.meta=e,a.nextAyah=function(a,n){if(a<1||a>e.numSuras)throw new RangeError("Surah must be between 1 and "+e.numSuras);var r=h(a,n);return s(r==e.numAyas?1:r+1)},a.pageMeta=function(a){if(a<1||a>e.numPages)throw new RangeError("pagenum must be between 1 and "+e.numPages);var n=[T[a],T[a+1]],r=n[1];return{pageNum:a,first:s(n[0]),last:y([],s(r-1),!0)}},a.prevAyah=function(a,r){n(a);var i=h(a,r);return s(1==i?e.numAyas:i-1)},a.suraNamesEn=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],a.suraNamesRu=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]]}));
diff --git a/lib_cjs/ayaStringSplitter.js b/lib_cjs/ayaStringSplitter.js
index 615571a..acd4efc 100644
--- a/lib_cjs/ayaStringSplitter.js
+++ b/lib_cjs/ayaStringSplitter.js
@@ -1,22 +1,40 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.ayaStringSplitter = void 0;
+exports.ayaStringSplitter = ayaStringSplitter;
+var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
 /**
  *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
  * @param {*} str String of type "x:y" or "x:y1-y2"
  * @returns {array} array [x,y] or [x,[y1,y2]] respectively
  */
 function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surah = _a[0], ayahs = _a[1];
-    if (!ayahs) {
+    var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
+    var surah = parseInt(surahStr, 10);
+    if (isNaN(surah)) {
+        throw "Error in surah format " + str;
+    }
+    if (!ayahsStr) {
         throw "Error in data " + str;
     }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
+    var ayahs;
+    if (ayahsStr.includes("-")) {
+        ayahs = ayahsStr.split("-").map(function (a) {
+            var ayah = parseInt(a, 10);
+            if (isNaN(ayah) || ayah === 0) {
+                throw "Error in ayah " + a;
+            }
+            return ayah;
+        });
+        if (ayahs[0] > ayahs[1])
+            throw "Error in ayah range " + str;
+    }
+    else {
+        ayahs = parseInt(ayahsStr, 10);
+        if (isNaN(ayahs) || ayahs === 0) {
+            throw "Error in data " + str;
+        }
+        (0, checkValidSurahAyah_1.checkValidSurahAyah)(surah, ayahs);
+    }
+    return [surah, ayahs];
 }
-exports.ayaStringSplitter = ayaStringSplitter;
 //# sourceMappingURL=ayaStringSplitter.js.map
\ No newline at end of file
diff --git a/lib_cjs/ayaStringSplitter.js.map b/lib_cjs/ayaStringSplitter.js.map
index 2be26dd..b22ff10 100644
--- a/lib_cjs/ayaStringSplitter.js.map
+++ b/lib_cjs/ayaStringSplitter.js.map
@@ -1 +1 @@
-{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IACrC,IAAA,KAAiB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAArC,KAAK,QAAA,EAAE,KAAK,QAAyB,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,gBAAgB,GAAG,GAAG,CAAA;KAC7B;IACD,OAAO;QACL,CAAC,KAAK;QACN,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjB,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAsB;YACpD,CAAC,CAAC,CAAC,KAAK;KACX,CAAA;AACH,CAAC;AAXD,8CAWC"}
\ No newline at end of file
+{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":";;AAQA,8CAgCC;AAxCD,6DAA2D;AAG3D;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IACrC,IAAA,KAAuB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAA3C,QAAQ,QAAA,EAAE,QAAQ,QAAyB,CAAA;IAClD,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,wBAAwB,GAAG,GAAG,CAAA;IACtC,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gBAAgB,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED,IAAI,KAAgC,CAAA;IACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC;YAC/B,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAqB,CAAA;QACtB,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,sBAAsB,GAAG,GAAG,CAAA;IAC7D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAG,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,gBAAgB,GAAG,GAAG,CAAA;QAC9B,CAAC;QACD,IAAA,yCAAmB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;IAGD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/checkValidAyahId.js b/lib_cjs/checkValidAyahId.js
new file mode 100644
index 0000000..9f41016
--- /dev/null
+++ b/lib_cjs/checkValidAyahId.js
@@ -0,0 +1,16 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.checkValidAyahId = checkValidAyahId;
+var const_1 = require("./const");
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayaId - The Ayah (verse) ID to check.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+function checkValidAyahId(ayaId) {
+    if (ayaId < 1 || ayaId > const_1.meta.numAyas)
+        throw new RangeError("ayaid must be between 1 and " + const_1.meta.numAyas);
+    return true;
+}
+//# sourceMappingURL=checkValidAyahId.js.map
\ No newline at end of file
diff --git a/lib_cjs/checkValidAyahId.js.map b/lib_cjs/checkValidAyahId.js.map
new file mode 100644
index 0000000..cf0dd10
--- /dev/null
+++ b/lib_cjs/checkValidAyahId.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"checkValidAyahId.js","sourceRoot":"","sources":["../src/checkValidAyahId.ts"],"names":[],"mappings":";;AASA,4CAIC;AAbD,iCAA+B;AAG/B;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAI,CAAC,OAAO;QACnC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,YAAI,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurah.js b/lib_cjs/checkValidSurah.js
new file mode 100644
index 0000000..0224d97
--- /dev/null
+++ b/lib_cjs/checkValidSurah.js
@@ -0,0 +1,21 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.checkValidSurah = checkValidSurah;
+var const_1 = require("./const");
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+function checkValidSurah(surah, checkOnly) {
+    if (checkOnly === void 0) { checkOnly = false; }
+    if (surah < 1 || surah > const_1.meta.numSuras) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
+    }
+    return true;
+}
+//# sourceMappingURL=checkValidSurah.js.map
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurah.js.map b/lib_cjs/checkValidSurah.js.map
new file mode 100644
index 0000000..caa8242
--- /dev/null
+++ b/lib_cjs/checkValidSurah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"checkValidSurah.js","sourceRoot":"","sources":["../src/checkValidSurah.ts"],"names":[],"mappings":";;AAWA,0CAMC;AAjBD,iCAA+B;AAG/B;;;;;;GAMG;AAEH,SAAgB,eAAe,CAAC,KAAY,EAAE,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IAC7D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,YAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurahAyah.js b/lib_cjs/checkValidSurahAyah.js
new file mode 100644
index 0000000..b4cb3c7
--- /dev/null
+++ b/lib_cjs/checkValidSurahAyah.js
@@ -0,0 +1,26 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.checkValidSurahAyah = checkValidSurahAyah;
+var checkValidSurah_1 = require("./checkValidSurah");
+var getSurahMeta_1 = require("./getSurahMeta");
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+function checkValidSurahAyah(surah, ayah, checkOnly) {
+    if (checkOnly === void 0) { checkOnly = false; }
+    if (!(0, checkValidSurah_1.checkValidSurah)(surah, checkOnly))
+        return false;
+    var _a = (0, getSurahMeta_1.getSurahMeta)(surah), startAyahId = _a[0], ayahCount = _a[1];
+    if (ayah < 1 || ayah > ayahCount) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Ayah must be between 1 and " + ayahCount);
+    }
+    return true;
+}
+//# sourceMappingURL=checkValidSurahAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurahAyah.js.map b/lib_cjs/checkValidSurahAyah.js.map
new file mode 100644
index 0000000..12b4c23
--- /dev/null
+++ b/lib_cjs/checkValidSurahAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"checkValidSurahAyah.js","sourceRoot":"","sources":["../src/checkValidSurahAyah.ts"],"names":[],"mappings":";;AAYA,kDASC;AArBD,qDAAoD;AACpD,+CAA8C;AAG9C;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,KAAY,EAAE,IAAY,EAAE,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IAC/E,IAAI,CAAC,IAAA,iCAAe,EAAC,KAAK,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAA,KAA2B,IAAA,2BAAY,EAAC,KAAK,CAAC,EAA7C,WAAW,QAAA,EAAE,SAAS,QAAuB,CAAC;IACrD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findAyaidBySurah.js b/lib_cjs/findAyaidBySurah.js
new file mode 100644
index 0000000..eb29c45
--- /dev/null
+++ b/lib_cjs/findAyaidBySurah.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findAyaidBySurah = findAyaidBySurah;
+var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
+var getSurahMeta_1 = require("./getSurahMeta");
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+function findAyaidBySurah(surah, ayah) {
+    (0, checkValidSurahAyah_1.checkValidSurahAyah)(surah, ayah);
+    var startAyahId = (0, getSurahMeta_1.getSurahMeta)(surah)[0];
+    return startAyahId + ayah;
+}
+//# sourceMappingURL=findAyaidBySurah.js.map
\ No newline at end of file
diff --git a/lib_cjs/findAyaidBySurah.js.map b/lib_cjs/findAyaidBySurah.js.map
new file mode 100644
index 0000000..185bc20
--- /dev/null
+++ b/lib_cjs/findAyaidBySurah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findAyaidBySurah.js","sourceRoot":"","sources":["../src/findAyaidBySurah.ts"],"names":[],"mappings":";;AAUA,4CAIC;AAdD,6DAA4D;AAC5D,+CAA8C;AAG9C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAY,EAAE,IAAY;IACzD,IAAA,yCAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,IAAA,WAAW,GAAI,IAAA,2BAAY,EAAC,KAAK,CAAC,GAAvB,CAAwB;IAC1C,OAAO,WAAW,GAAG,IAAI,CAAC;AAC5B,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuz.js b/lib_cjs/findJuz.js
new file mode 100644
index 0000000..db789a3
--- /dev/null
+++ b/lib_cjs/findJuz.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findJuz = findJuz;
+var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var findJuzByAyaid_1 = require("./findJuzByAyaid");
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+function findJuz(surah, ayah, ayahMode) {
+    if (ayah === void 0) { ayah = 1; }
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : ((0, checkValidSurahAyah_1.checkValidSurahAyah)(surah, ayah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
+    return (0, findJuzByAyaid_1.findJuzByAyaid)(ayahId);
+}
+//# sourceMappingURL=findJuz.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuz.js.map b/lib_cjs/findJuz.js.map
new file mode 100644
index 0000000..afdb31e
--- /dev/null
+++ b/lib_cjs/findJuz.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuz.js","sourceRoot":"","sources":["../src/findJuz.ts"],"names":[],"mappings":";;AAaA,0BAMC;AAnBD,6DAA4D;AAC5D,uDAAsD;AACtD,mDAAkD;AAGlD;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,KAAY,EAAE,IAAgB,EAAE,QAAgB;IAAlC,qBAAA,EAAA,QAAgB;IAAE,yBAAA,EAAA,gBAAgB;IACtE,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,IAAA,yCAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAEpF,OAAO,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzAndShift.js b/lib_cjs/findJuzAndShift.js
new file mode 100644
index 0000000..538784d
--- /dev/null
+++ b/lib_cjs/findJuzAndShift.js
@@ -0,0 +1,38 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findJuzAndShift = findJuzAndShift;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+var checkValidSurah_1 = require("./checkValidSurah");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var findJuzByAyaid_1 = require("./findJuzByAyaid");
+var findSurahByAyaid_1 = require("./findSurahByAyaid");
+var juzList_1 = require("./lists/juzList");
+var surahList_1 = require("./lists/surahList");
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+function findJuzAndShift(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
+        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
+    var juz = (0, findJuzByAyaid_1.findJuzByAyaid)(ayahId);
+    var leftAyahId = juzList_1.JuzList[juz];
+    if (ayahMode)
+        surah = (0, findSurahByAyaid_1.findSurahByAyaid)(ayahId)[0];
+    var surahStartAyahId = surahList_1.SuraList[surah][0];
+    return {
+        juz: juz,
+        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+        leftAyahId: leftAyahId
+    };
+}
+//# sourceMappingURL=findJuzAndShift.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzAndShift.js.map b/lib_cjs/findJuzAndShift.js.map
new file mode 100644
index 0000000..811a8ee
--- /dev/null
+++ b/lib_cjs/findJuzAndShift.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzAndShift.js","sourceRoot":"","sources":["../src/findJuzAndShift.ts"],"names":[],"mappings":";;AAqBA,0CAsBC;AA3CD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,mDAAkD;AAClD,uDAAsD;AACtD,2CAA0C;AAC1C,+CAA6C;AAI7C;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAMhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,IAAM,GAAG,GAAG,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;IACnC,IAAM,UAAU,GAAG,iBAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ;QAAG,KAAK,GAAI,IAAA,mCAAgB,EAAC,MAAM,CAAC,GAA5B,CAA6B;IAC1C,IAAA,gBAAgB,GAAI,oBAAQ,CAAC,KAAK,CAAC,GAAnB,CAAoB;IAC3C,OAAO;QACL,GAAG,KAAA;QACH,oBAAoB,EAAE,gBAAgB,GAAG,UAAU,GAAG,CAAC;QACvD,UAAU,YAAA;KACX,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzByAyaid.js b/lib_cjs/findJuzByAyaid.js
new file mode 100644
index 0000000..be061ce
--- /dev/null
+++ b/lib_cjs/findJuzByAyaid.js
@@ -0,0 +1,16 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findJuzByAyaid = findJuzByAyaid;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+var juzList_1 = require("./lists/juzList");
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+function findJuzByAyaid(ayaId) {
+    (0, checkValidAyahId_1.checkValidAyahId)(ayaId);
+    return juzList_1.JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
+}
+//# sourceMappingURL=findJuzByAyaid.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzByAyaid.js.map b/lib_cjs/findJuzByAyaid.js.map
new file mode 100644
index 0000000..267eccb
--- /dev/null
+++ b/lib_cjs/findJuzByAyaid.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzByAyaid.js","sourceRoot":"","sources":["../src/findJuzByAyaid.ts"],"names":[],"mappings":";;AAWA,wCAIC;AAfD,uDAAsD;AACtD,2CAA0C;AAI1C;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,KAAa;IAC1C,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAC;IAExB,OAAO,iBAAO,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,KAAK,EAAT,CAAS,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizb.js b/lib_cjs/findJuzHizb.js
new file mode 100644
index 0000000..8d2b104
--- /dev/null
+++ b/lib_cjs/findJuzHizb.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findJuzHizb = findJuzHizb;
+var checkValidSurah_1 = require("./checkValidSurah");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var findJuzHizbByAyaid_1 = require("./findJuzHizbByAyaid");
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+function findJuzHizb(surah, ayah, ayahMode) {
+    if (ayah === void 0) { ayah = 1; }
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
+    return (0, findJuzHizbByAyaid_1.findJuzHizbByAyaid)(ayahId);
+}
+//# sourceMappingURL=findJuzHizb.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizb.js.map b/lib_cjs/findJuzHizb.js.map
new file mode 100644
index 0000000..4dce207
--- /dev/null
+++ b/lib_cjs/findJuzHizb.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzHizb.js","sourceRoot":"","sources":["../src/findJuzHizb.ts"],"names":[],"mappings":";;AAaA,kCAUC;AAvBD,qDAAoD;AACpD,uDAAsD;AACtD,2DAA0D;AAG1D;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,KAAY,EACZ,IAAgB,EAChB,QAAgB;IADhB,qBAAA,EAAA,QAAgB;IAChB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,IAAA,uCAAkB,EAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizbByAyaid.js b/lib_cjs/findJuzHizbByAyaid.js
new file mode 100644
index 0000000..3fe9c67
--- /dev/null
+++ b/lib_cjs/findJuzHizbByAyaid.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+var findJuzByAyaid_1 = require("./findJuzByAyaid");
+var hizbList_1 = require("./lists/hizbList");
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+function findJuzHizbByAyaid(ayaId) {
+    (0, checkValidAyahId_1.checkValidAyahId)(ayaId);
+    var juz = (0, findJuzByAyaid_1.findJuzByAyaid)(ayaId);
+    var id = hizbList_1.HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
+    return { juz: juz, hizb: id % 8 || 8, id: id };
+}
+//# sourceMappingURL=findJuzHizbByAyaid.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizbByAyaid.js.map b/lib_cjs/findJuzHizbByAyaid.js.map
new file mode 100644
index 0000000..d95ca04
--- /dev/null
+++ b/lib_cjs/findJuzHizbByAyaid.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzHizbByAyaid.js","sourceRoot":"","sources":["../src/findJuzHizbByAyaid.ts"],"names":[],"mappings":";;AAYA,gDAOC;AAnBD,uDAAsD;AACtD,mDAAkD;AAClD,6CAAmD;AAInD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAC;IAExB,IAAM,GAAG,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC;IAElC,IAAM,EAAE,GAAG,0BAAe,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,KAAK,EAAT,CAAS,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,EAAE,GAAG,KAAA,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAA,EAAE,CAAC;AACxC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzMetaBySurah.js b/lib_cjs/findJuzMetaBySurah.js
new file mode 100644
index 0000000..48f6ddb
--- /dev/null
+++ b/lib_cjs/findJuzMetaBySurah.js
@@ -0,0 +1,29 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findJuzMetaBySurah = findJuzMetaBySurah;
+var const_1 = require("./const");
+var findJuzAndShift_1 = require("./findJuzAndShift");
+var findSurahByAyaid_1 = require("./findSurahByAyaid");
+var juzList_1 = require("./lists/juzList");
+/**
+ * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
+ * @param {*} suraNumber
+ * @param {*} ayaNumber
+ * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
+ */
+function findJuzMetaBySurah(surah, ayah) {
+    if (ayah === void 0) { ayah = 1; }
+    var _a = (0, findJuzAndShift_1.findJuzAndShift)(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
+    var rightJuz = leftjuz;
+    while (rightJuz < const_1.meta.numJuzs &&
+        (0, findSurahByAyaid_1.findSurahByAyaid)(juzList_1.JuzList[rightJuz + 1])[0] == surah)
+        rightJuz++;
+    return {
+        leftjuz: leftjuz,
+        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
+        rightJuz: rightJuz,
+        leftAyahId: leftAyahId,
+        rightAyahId: juzList_1.JuzList[rightJuz + 1],
+    };
+}
+//# sourceMappingURL=findJuzMetaBySurah.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzMetaBySurah.js.map b/lib_cjs/findJuzMetaBySurah.js.map
new file mode 100644
index 0000000..0ebb7cf
--- /dev/null
+++ b/lib_cjs/findJuzMetaBySurah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzMetaBySurah.js","sourceRoot":"","sources":["../src/findJuzMetaBySurah.ts"],"names":[],"mappings":";;AAYA,gDAiBC;AA7BD,iCAA+B;AAC/B,qDAAoD;AACpD,uDAAsD;AACtD,2CAA0C;AAG1C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAY,EAAE,IAAgB;IAAhB,qBAAA,EAAA,QAAgB;IACzD,IAAA,KAEF,IAAA,iCAAe,EAAC,KAAK,EAAE,IAAI,CAAC,EADzB,OAAO,SAAA,EAAE,oBAAoB,0BAAA,EAAE,UAAU,gBAChB,CAAC;IAEjC,IAAI,QAAQ,GAAQ,OAAO,CAAC;IAC5B,OAAO,QAAQ,GAAG,YAAI,CAAC,OAAO;QAC5B,IAAA,mCAAgB,EAAC,iBAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;QACnD,QAAQ,EAAE,CAAC;IAEb,OAAO;QACL,OAAO,SAAA;QACP,oBAAoB,sBAAA;QACpB,QAAQ,UAAA;QACR,UAAU,YAAA;QACV,WAAW,EAAE,iBAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findPage.js b/lib_cjs/findPage.js
new file mode 100644
index 0000000..34309d1
--- /dev/null
+++ b/lib_cjs/findPage.js
@@ -0,0 +1,23 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findPage = findPage;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+var checkValidSurah_1 = require("./checkValidSurah");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var pageList_1 = require("./lists/pageList");
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+function findPage(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
+        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
+    return pageList_1.PageList.findIndex(function (x) { return x > ayahId; }) - 1;
+}
+//# sourceMappingURL=findPage.js.map
\ No newline at end of file
diff --git a/lib_cjs/findPage.js.map b/lib_cjs/findPage.js.map
new file mode 100644
index 0000000..fbfbd39
--- /dev/null
+++ b/lib_cjs/findPage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findPage.js","sourceRoot":"","sources":["../src/findPage.ts"],"names":[],"mappings":";;AAeA,4BAMC;AArBD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,6CAA4C;AAI5C;;;;;;;GAOG;AACH,SAAgB,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IACnE,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,mBAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,MAAM,EAAV,CAAU,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findRangeAroundAyah.js b/lib_cjs/findRangeAroundAyah.js
new file mode 100644
index 0000000..8ccc537
--- /dev/null
+++ b/lib_cjs/findRangeAroundAyah.js
@@ -0,0 +1,67 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findRangeAroundAyah = findRangeAroundAyah;
+var checkValidSurah_1 = require("./checkValidSurah");
+var const_1 = require("./const");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var findJuzByAyaid_1 = require("./findJuzByAyaid");
+var findPage_1 = require("./findPage");
+var juzList_1 = require("./lists/juzList");
+var pageList_1 = require("./lists/pageList");
+var surahList_1 = require("./lists/surahList");
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+// export function pageMetaOld(pageNum: number): any {
+//   if (pageNum < 1 || pageNum > meta.numPages)
+//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
+//   const [curPage, nextPage] = [
+//     findSurahByAyaid(PageList[pageNum]),
+//     findSurahByAyaid(PageList[pageNum + 1]),
+//   ]
+//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
+//     curPage[0],
+//     curPage[1],
+//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
+//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
+//   ]
+//   return {
+//     pageNum,
+//     first: [firstSurah, firstAyah],
+//     last: [lastSurah, lastAyah],
+//   }
+// }
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ayah
+        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
+    switch (mode) {
+        case "juz": {
+            var juz = (0, findJuzByAyaid_1.findJuzByAyaid)(ayahId);
+            return [juzList_1.JuzList[juz], juzList_1.JuzList[juz + 1] - 1];
+        }
+        case "surah": {
+            return [surahList_1.SuraList[surah][0] + 1, surahList_1.SuraList[surah + 1][0]];
+        }
+        case "ayah": {
+            return [ayahId, ayahId];
+        }
+        case "page": {
+            var page = (0, findPage_1.findPage)(-1, ayahId, true);
+            return [pageList_1.PageList[page], pageList_1.PageList[page + 1] - 1];
+        }
+        case "all":
+        default:
+            return [1, const_1.meta.numAyas];
+    }
+}
+//# sourceMappingURL=findRangeAroundAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/findRangeAroundAyah.js.map b/lib_cjs/findRangeAroundAyah.js.map
new file mode 100644
index 0000000..5555b16
--- /dev/null
+++ b/lib_cjs/findRangeAroundAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findRangeAroundAyah.js","sourceRoot":"","sources":["../src/findRangeAroundAyah.ts"],"names":[],"mappings":";;AA0CA,kDAgCC;AA1ED,qDAAoD;AACpD,iCAA+B;AAC/B,uDAAsD;AACtD,mDAAkD;AAClD,uCAAsC;AACtC,2CAA0C;AAC1C,6CAA4C;AAC5C,+CAA6C;AAG7C;;;GAGG;AACH,sDAAsD;AACtD,gDAAgD;AAChD,2EAA2E;AAC3E,kCAAkC;AAClC,2CAA2C;AAC3C,+CAA+C;AAC/C,MAAM;AACN,2DAA2D;AAC3D,kBAAkB;AAClB,kBAAkB;AAClB,yDAAyD;AACzD,0EAA0E;AAC1E,MAAM;AACN,aAAa;AACb,eAAe;AACf,sCAAsC;AACtC,mCAAmC;AACnC,MAAM;AACN,IAAI;AAGJ;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAM,GAAG,GAAQ,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,iBAAO,CAAC,GAAG,CAAC,EAAE,iBAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,CAAC,oBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,oBAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAM,IAAI,GAAS,IAAA,mBAAQ,EAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,mBAAQ,CAAC,IAAI,CAAC,EAAE,mBAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,KAAK,CAAC;QACX;YACE,OAAO,CAAC,CAAC,EAAE,YAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findSurahByAyaid.js b/lib_cjs/findSurahByAyaid.js
new file mode 100644
index 0000000..1378cb9
--- /dev/null
+++ b/lib_cjs/findSurahByAyaid.js
@@ -0,0 +1,17 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.findSurahByAyaid = findSurahByAyaid;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+var surahList_1 = require("./lists/surahList");
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+function findSurahByAyaid(ayaId) {
+    (0, checkValidAyahId_1.checkValidAyahId)(ayaId);
+    var suraNum = surahList_1.SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
+    return [suraNum, ayaId - surahList_1.SuraList[suraNum][0]];
+}
+//# sourceMappingURL=findSurahByAyaid.js.map
\ No newline at end of file
diff --git a/lib_cjs/findSurahByAyaid.js.map b/lib_cjs/findSurahByAyaid.js.map
new file mode 100644
index 0000000..d949fb5
--- /dev/null
+++ b/lib_cjs/findSurahByAyaid.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findSurahByAyaid.js","sourceRoot":"","sources":["../src/findSurahByAyaid.ts"],"names":[],"mappings":";;AAUA,4CAKC;AAfD,uDAAsD;AACtD,+CAA6C;AAG7C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAC;IAExB,IAAM,OAAO,GAAU,oBAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAb,CAAa,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,oBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/getAyaCountinSura.js b/lib_cjs/getAyaCountinSura.js
new file mode 100644
index 0000000..bc3ec6f
--- /dev/null
+++ b/lib_cjs/getAyaCountinSura.js
@@ -0,0 +1,13 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getAyaCountinSura = getAyaCountinSura;
+var getSurahMeta_1 = require("./getSurahMeta");
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+function getAyaCountinSura(surah) {
+    return (0, getSurahMeta_1.getSurahMeta)(surah)[1];
+}
+//# sourceMappingURL=getAyaCountinSura.js.map
\ No newline at end of file
diff --git a/lib_cjs/getAyaCountinSura.js.map b/lib_cjs/getAyaCountinSura.js.map
new file mode 100644
index 0000000..88df28c
--- /dev/null
+++ b/lib_cjs/getAyaCountinSura.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getAyaCountinSura.js","sourceRoot":"","sources":["../src/getAyaCountinSura.ts"],"names":[],"mappings":";;AAQA,8CAEC;AAVD,+CAA8C;AAG9C;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAY;IAC5C,OAAO,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/getSurahMeta.js b/lib_cjs/getSurahMeta.js
new file mode 100644
index 0000000..873f7ad
--- /dev/null
+++ b/lib_cjs/getSurahMeta.js
@@ -0,0 +1,16 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.getSurahMeta = getSurahMeta;
+var checkValidSurah_1 = require("./checkValidSurah");
+var surahList_1 = require("./lists/surahList");
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+function getSurahMeta(surah) {
+    (0, checkValidSurah_1.checkValidSurah)(surah);
+    return surahList_1.SuraList[surah];
+}
+//# sourceMappingURL=getSurahMeta.js.map
\ No newline at end of file
diff --git a/lib_cjs/getSurahMeta.js.map b/lib_cjs/getSurahMeta.js.map
new file mode 100644
index 0000000..3bfff4a
--- /dev/null
+++ b/lib_cjs/getSurahMeta.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getSurahMeta.js","sourceRoot":"","sources":["../src/getSurahMeta.ts"],"names":[],"mappings":";;AAWA,oCAGC;AAdD,qDAAoD;AACpD,+CAA6C;AAI7C;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAY;IACvC,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC;IACvB,OAAO,oBAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/hizbList.js b/lib_cjs/hizbList.js
index 35712bc..d4c2caa 100644
--- a/lib_cjs/hizbList.js
+++ b/lib_cjs/hizbList.js
@@ -1,6 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.HizbQuarterList = void 0;
+//------------------ Hizb Data ---------------------
 exports.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,
diff --git a/lib_cjs/hizbList.js.map b/lib_cjs/hizbList.js.map
index 69dfeaa..08fd1fd 100644
--- a/lib_cjs/hizbList.js.map
+++ b/lib_cjs/hizbList.js.map
@@ -1 +1 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":";;;AAEa,QAAA,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
+{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACvC,QAAA,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/index.js b/lib_cjs/index.js
index 0154d17..a7b1c15 100644
--- a/lib_cjs/index.js
+++ b/lib_cjs/index.js
@@ -1,381 +1,77 @@
 "use strict";
-var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findRangeAroundAyah = exports.pageMeta = exports.prevAyah = exports.nextAyah = exports.getAyaCountinSura = exports.findAyaidBySurah = exports.findPage = exports.getSurahMeta = exports.findJuzMetaBySurah = exports.findJuzAndShift = exports.isAyahPageFirst = exports.isAyahJuzFirst = exports.findJuzHizb = exports.findJuz = exports.findJuzHizbByAyaid = exports.findJuzByAyaid = exports.findSurahByAyaid = exports.ayaStringSplitter = exports.SajdaList = exports.PageList = exports.RukuList = exports.ManzilList = exports.HizbQuarterList = exports.JuzList = exports.SuraList = exports.meta = exports.suraNamesRu = exports.suraNamesEn = void 0;
 // Quran Meta
-var const_1 = require("./const");
-Object.defineProperty(exports, "meta", { enumerable: true, get: function () { return const_1.meta; } });
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.prevAyah = exports.pageMeta = exports.nextAyah = exports.SuraList = exports.SajdaList = exports.PageList = exports.ManzilList = exports.JuzList = exports.HizbQuarterList = exports.isAyahPageFirst = exports.isAyahJuzFirst = exports.getSurahMeta = exports.getAyaCountinSura = exports.findSurahByAyaid = exports.findRangeAroundAyah = exports.findPage = exports.findJuzMetaBySurah = exports.findJuzHizbByAyaid = exports.findJuzHizb = exports.findJuzByAyaid = exports.findJuzAndShift = exports.findJuz = exports.findAyaidBySurah = exports.meta = exports.checkValidSurahAyah = exports.checkValidSurah = exports.checkValidAyahId = exports.ayaStringSplitter = exports.RukuList = exports.suraNamesRu = exports.suraNamesEn = void 0;
+// export {
+//   AyahId,
+//   AyahNo, Juz, JuzMeta, Page, PageMeta, Sajda,
+//   Surah, SurahAyah, SurahMeta
+// }
 //export default QuranMeta;
 //------------------ Sura Data ---------------------
 var sura_en_1 = require("./i18n/sura.en");
 Object.defineProperty(exports, "suraNamesEn", { enumerable: true, get: function () { return sura_en_1.suraNames; } });
 var sura_ru_1 = require("./i18n/sura.ru");
 Object.defineProperty(exports, "suraNamesRu", { enumerable: true, get: function () { return sura_ru_1.suraNames; } });
-var surahList_1 = require("./surahList");
-Object.defineProperty(exports, "SuraList", { enumerable: true, get: function () { return surahList_1.SuraList; } });
-//------------------ Juz Data ---------------------
-var 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,
-];
-exports.JuzList = JuzList;
-//------------------ Hizb Data ---------------------
-var hizbList_1 = require("./hizbList");
-Object.defineProperty(exports, "HizbQuarterList", { enumerable: true, get: function () { return hizbList_1.HizbQuarterList; } });
-//------------------ Manzil Data ---------------------
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-exports.ManzilList = ManzilList;
 //------------------ Ruku Data ---------------------
 // export Ruku  from "~/js/qdata-ruku.json"
-var rukuList_1 = require("./rukuList");
+var rukuList_1 = require("./lists/rukuList");
 Object.defineProperty(exports, "RukuList", { enumerable: true, get: function () { return rukuList_1.RukuList; } });
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-var pageList_1 = require("./pageList");
-Object.defineProperty(exports, "PageList", { enumerable: true, get: function () { return pageList_1.PageList; } });
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-var SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-exports.SajdaList = SajdaList;
 //export default QuranMeta;
 var ayaStringSplitter_1 = require("./ayaStringSplitter");
 Object.defineProperty(exports, "ayaStringSplitter", { enumerable: true, get: function () { return ayaStringSplitter_1.ayaStringSplitter; } });
-function binarySearch(ar, el, compare_fn) {
-    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-    var m = 0;
-    var n = ar.length - 1;
-    while (m <= n) {
-        var k = (n + m) >> 1;
-        var cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > const_1.meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + const_1.meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > const_1.meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
-    }
-    return true;
-}
-/**
- *
- * @param {*} ayaId
- */
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = surahList_1.SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return suraNum < 0
-        ? [114, ayaId - surahList_1.SuraList[114][0]]
-        : [suraNum, ayaId - surahList_1.SuraList[suraNum][0]];
-}
-exports.findSurahByAyaid = findSurahByAyaid;
-/**
- *
- * @param {*} ayaId
- */
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-exports.findJuzByAyaid = findJuzByAyaid;
-/**
- *
- * @param {*} ayaId
- */
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = hizbList_1.HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-exports.findJuz = findJuz;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-exports.findJuzHizb = findJuzHizb;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-function isAyahJuzFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-    // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-exports.isAyahJuzFirst = isAyahJuzFirst;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-function isAyahPageFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(pageList_1.PageList, ayahId);
-    // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-exports.isAyahPageFirst = isAyahPageFirst;
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (surah < 0)
-        surah = findSurahByAyaid(leftAyahId)[0];
-    var surahStartAyahId = surahList_1.SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId,
-    };
-}
-exports.findJuzAndShift = findJuzAndShift;
-//todo explain function
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < const_1.meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-exports.findJuzMetaBySurah = findJuzMetaBySurah;
-/**
- * Get Surah meta
- * @param surah
- */
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return surahList_1.SuraList[surah];
-}
-exports.getSurahMeta = getSurahMeta;
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return pageList_1.PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-exports.findPage = findPage;
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-function findAyaidBySurah(surah, ayah) {
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-exports.findAyaidBySurah = findAyaidBySurah;
-/**
- *
- * @param {*} surah
- */
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-exports.getAyaCountinSura = getAyaCountinSura;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > const_1.meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == const_1.meta.numAyas ? 1 : ayaid + 1);
-}
-exports.nextAyah = nextAyah;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? const_1.meta.numAyas : ayaid - 1);
-}
-exports.prevAyah = prevAyah;
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-function pageMeta(pageNum) {
-    // todo rename to getPageMeta in next major version
-    if (pageNum < 1 || pageNum > const_1.meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + const_1.meta.numPages);
-    var _a = [
-        pageList_1.PageList[pageNum],
-        pageList_1.PageList[pageNum + 1],
-    ], curPage = _a[0], nextPage = _a[1];
-    return {
-        pageNum: pageNum,
-        first: findSurahByAyaid(curPage),
-        last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-    };
-}
-exports.pageMeta = pageMeta;
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [pageList_1.PageList[page], pageList_1.PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, const_1.meta.numAyas];
-    }
-}
-exports.findRangeAroundAyah = findRangeAroundAyah;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+Object.defineProperty(exports, "checkValidAyahId", { enumerable: true, get: function () { return checkValidAyahId_1.checkValidAyahId; } });
+var checkValidSurah_1 = require("./checkValidSurah");
+Object.defineProperty(exports, "checkValidSurah", { enumerable: true, get: function () { return checkValidSurah_1.checkValidSurah; } });
+var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
+Object.defineProperty(exports, "checkValidSurahAyah", { enumerable: true, get: function () { return checkValidSurahAyah_1.checkValidSurahAyah; } });
+var const_1 = require("./const");
+Object.defineProperty(exports, "meta", { enumerable: true, get: function () { return const_1.meta; } });
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+Object.defineProperty(exports, "findAyaidBySurah", { enumerable: true, get: function () { return findAyaidBySurah_1.findAyaidBySurah; } });
+var findJuz_1 = require("./findJuz");
+Object.defineProperty(exports, "findJuz", { enumerable: true, get: function () { return findJuz_1.findJuz; } });
+var findJuzAndShift_1 = require("./findJuzAndShift");
+Object.defineProperty(exports, "findJuzAndShift", { enumerable: true, get: function () { return findJuzAndShift_1.findJuzAndShift; } });
+var findJuzByAyaid_1 = require("./findJuzByAyaid");
+Object.defineProperty(exports, "findJuzByAyaid", { enumerable: true, get: function () { return findJuzByAyaid_1.findJuzByAyaid; } });
+var findJuzHizb_1 = require("./findJuzHizb");
+Object.defineProperty(exports, "findJuzHizb", { enumerable: true, get: function () { return findJuzHizb_1.findJuzHizb; } });
+var findJuzHizbByAyaid_1 = require("./findJuzHizbByAyaid");
+Object.defineProperty(exports, "findJuzHizbByAyaid", { enumerable: true, get: function () { return findJuzHizbByAyaid_1.findJuzHizbByAyaid; } });
+var findJuzMetaBySurah_1 = require("./findJuzMetaBySurah");
+Object.defineProperty(exports, "findJuzMetaBySurah", { enumerable: true, get: function () { return findJuzMetaBySurah_1.findJuzMetaBySurah; } });
+var findPage_1 = require("./findPage");
+Object.defineProperty(exports, "findPage", { enumerable: true, get: function () { return findPage_1.findPage; } });
+var findRangeAroundAyah_1 = require("./findRangeAroundAyah");
+Object.defineProperty(exports, "findRangeAroundAyah", { enumerable: true, get: function () { return findRangeAroundAyah_1.findRangeAroundAyah; } });
+var findSurahByAyaid_1 = require("./findSurahByAyaid");
+Object.defineProperty(exports, "findSurahByAyaid", { enumerable: true, get: function () { return findSurahByAyaid_1.findSurahByAyaid; } });
+var getAyaCountinSura_1 = require("./getAyaCountinSura");
+Object.defineProperty(exports, "getAyaCountinSura", { enumerable: true, get: function () { return getAyaCountinSura_1.getAyaCountinSura; } });
+var getSurahMeta_1 = require("./getSurahMeta");
+Object.defineProperty(exports, "getSurahMeta", { enumerable: true, get: function () { return getSurahMeta_1.getSurahMeta; } });
+var isAyahJuzFirst_1 = require("./isAyahJuzFirst");
+Object.defineProperty(exports, "isAyahJuzFirst", { enumerable: true, get: function () { return isAyahJuzFirst_1.isAyahJuzFirst; } });
+var isAyahPageFirst_1 = require("./isAyahPageFirst");
+Object.defineProperty(exports, "isAyahPageFirst", { enumerable: true, get: function () { return isAyahPageFirst_1.isAyahPageFirst; } });
+var hizbList_1 = require("./lists/hizbList");
+Object.defineProperty(exports, "HizbQuarterList", { enumerable: true, get: function () { return hizbList_1.HizbQuarterList; } });
+var juzList_1 = require("./lists/juzList");
+Object.defineProperty(exports, "JuzList", { enumerable: true, get: function () { return juzList_1.JuzList; } });
+var manzilList_1 = require("./lists/manzilList");
+Object.defineProperty(exports, "ManzilList", { enumerable: true, get: function () { return manzilList_1.ManzilList; } });
+var pageList_1 = require("./lists/pageList");
+Object.defineProperty(exports, "PageList", { enumerable: true, get: function () { return pageList_1.PageList; } });
+var sajdaList_1 = require("./lists/sajdaList");
+Object.defineProperty(exports, "SajdaList", { enumerable: true, get: function () { return sajdaList_1.SajdaList; } });
+var surahList_1 = require("./lists/surahList");
+Object.defineProperty(exports, "SuraList", { enumerable: true, get: function () { return surahList_1.SuraList; } });
+var nextAyah_1 = require("./nextAyah");
+Object.defineProperty(exports, "nextAyah", { enumerable: true, get: function () { return nextAyah_1.nextAyah; } });
+var pageMeta_1 = require("./pageMeta");
+Object.defineProperty(exports, "pageMeta", { enumerable: true, get: function () { return pageMeta_1.pageMeta; } });
+var prevAyah_1 = require("./prevAyah");
+Object.defineProperty(exports, "prevAyah", { enumerable: true, get: function () { return prevAyah_1.prevAyah; } });
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib_cjs/index.js.map b/lib_cjs/index.js.map
index f1ae0f0..198a248 100644
--- a/lib_cjs/index.js.map
+++ b/lib_cjs/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,aAAa;;;AAEb,WAAW;AACX,YAAY;AACZ,iDAAiD;AACjD,gCAAgC;AAChC,IAAI;AACJ,2BAA2B;AAC3B,oDAAoD;AAEpD,0CAAyD;AAAhD,sGAAA,SAAS,OAAe;AACjC,0CAAyD;AAAhD,sGAAA,SAAS,OAAe;AAGjC,oDAAoD;AACpD,2CAA2C;AAC3C,6CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AAEjB,2BAA2B;AAC3B,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAC1B,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,iCAA8B;AAArB,6FAAA,IAAI,OAAA;AACb,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,mDAAiD;AAAxC,gHAAA,cAAc,OAAA;AACvB,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAC1B,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,mDAAiD;AAAxC,gHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,6CAAkD;AAAzC,2GAAA,eAAe,OAAA;AACxB,2CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,iDAA+C;AAAtC,wGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,sGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA"}
\ No newline at end of file
diff --git a/lib_cjs/isAyahJuzFirst.js b/lib_cjs/isAyahJuzFirst.js
new file mode 100644
index 0000000..dc52767
--- /dev/null
+++ b/lib_cjs/isAyahJuzFirst.js
@@ -0,0 +1,26 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isAyahJuzFirst = isAyahJuzFirst;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+var checkValidSurah_1 = require("./checkValidSurah");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var juzList_1 = require("./lists/juzList");
+var utils_1 = require("./utils");
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+function isAyahJuzFirst(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
+        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
+    return (0, utils_1.binarySearch)(juzList_1.JuzList, ayahId);
+    // return JuzList.findIndex((x: AyahId) => x == ayahId)
+}
+//# sourceMappingURL=isAyahJuzFirst.js.map
\ No newline at end of file
diff --git a/lib_cjs/isAyahJuzFirst.js.map b/lib_cjs/isAyahJuzFirst.js.map
new file mode 100644
index 0000000..ea5af5f
--- /dev/null
+++ b/lib_cjs/isAyahJuzFirst.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"isAyahJuzFirst.js","sourceRoot":"","sources":["../src/isAyahJuzFirst.ts"],"names":[],"mappings":";;AAgBA,wCAWC;AA3BD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,2CAA0C;AAE1C,iCAAuC;AAEvC;;;;;;;;GAQG;AACH,SAAgB,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,IAAA,oBAAY,EAAC,iBAAO,EAAE,MAAM,CAAC,CAAC;IACrC,uDAAuD;AACzD,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/isAyahPageFirst.js b/lib_cjs/isAyahPageFirst.js
new file mode 100644
index 0000000..d8ccf73
--- /dev/null
+++ b/lib_cjs/isAyahPageFirst.js
@@ -0,0 +1,25 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.isAyahPageFirst = isAyahPageFirst;
+var checkValidAyahId_1 = require("./checkValidAyahId");
+var checkValidSurah_1 = require("./checkValidSurah");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var pageList_1 = require("./lists/pageList");
+var utils_1 = require("./utils");
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+function isAyahPageFirst(surah, ayah, ayahMode) {
+    if (ayahMode === void 0) { ayahMode = false; }
+    var ayahId = ayahMode
+        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
+        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
+    return (0, utils_1.binarySearch)(pageList_1.PageList, ayahId);
+    // return PageList.findIndex((x: AyahId) => x == ayahId)
+}
+//# sourceMappingURL=isAyahPageFirst.js.map
\ No newline at end of file
diff --git a/lib_cjs/isAyahPageFirst.js.map b/lib_cjs/isAyahPageFirst.js.map
new file mode 100644
index 0000000..0f4e0ec
--- /dev/null
+++ b/lib_cjs/isAyahPageFirst.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"isAyahPageFirst.js","sourceRoot":"","sources":["../src/isAyahPageFirst.ts"],"names":[],"mappings":";;AAgBA,0CAWC;AA3BD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,6CAA4C;AAE5C,iCAAuC;AAGvC;;;;;;;GAOG;AACH,SAAgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,IAAA,oBAAY,EAAC,mBAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,wDAAwD;AAC1D,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/juzList.js b/lib_cjs/juzList.js
new file mode 100644
index 0000000..0df114e
--- /dev/null
+++ b/lib_cjs/juzList.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.JuzList = void 0;
+//------------------ Juz Data ---------------------
+exports.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,
+];
+//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_cjs/juzList.js.map b/lib_cjs/juzList.js.map
new file mode 100644
index 0000000..1da2b0d
--- /dev/null
+++ b/lib_cjs/juzList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../src/juzList.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AACtC,QAAA,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/hizbList.js b/lib_cjs/lists/hizbList.js
new file mode 100644
index 0000000..d4c2caa
--- /dev/null
+++ b/lib_cjs/lists/hizbList.js
@@ -0,0 +1,25 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.HizbQuarterList = void 0;
+//------------------ Hizb Data ---------------------
+exports.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,
+];
+//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/hizbList.js.map b/lib_cjs/lists/hizbList.js.map
new file mode 100644
index 0000000..ea22312
--- /dev/null
+++ b/lib_cjs/lists/hizbList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../../src/lists/hizbList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACvC,QAAA,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/lists/juzList.js b/lib_cjs/lists/juzList.js
new file mode 100644
index 0000000..0df114e
--- /dev/null
+++ b/lib_cjs/lists/juzList.js
@@ -0,0 +1,10 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.JuzList = void 0;
+//------------------ Juz Data ---------------------
+exports.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,
+];
+//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/juzList.js.map b/lib_cjs/lists/juzList.js.map
new file mode 100644
index 0000000..c6a4e37
--- /dev/null
+++ b/lib_cjs/lists/juzList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../../src/lists/juzList.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AACtC,QAAA,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/manzilList.js b/lib_cjs/lists/manzilList.js
new file mode 100644
index 0000000..cb05048
--- /dev/null
+++ b/lib_cjs/lists/manzilList.js
@@ -0,0 +1,6 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ManzilList = void 0;
+//------------------ Manzil Data ---------------------
+exports.ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/manzilList.js.map b/lib_cjs/lists/manzilList.js.map
new file mode 100644
index 0000000..fda8254
--- /dev/null
+++ b/lib_cjs/lists/manzilList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../../src/lists/manzilList.ts"],"names":[],"mappings":";;;AAEA,sDAAsD;AACzC,QAAA,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/pageList.js b/lib_cjs/lists/pageList.js
new file mode 100644
index 0000000..d8fd74f
--- /dev/null
+++ b/lib_cjs/lists/pageList.js
@@ -0,0 +1,51 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.PageList = void 0;
+exports.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,
+];
+//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/pageList.js.map b/lib_cjs/lists/pageList.js.map
new file mode 100644
index 0000000..8a1926b
--- /dev/null
+++ b/lib_cjs/lists/pageList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../../src/lists/pageList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/lists/rukuList.js b/lib_cjs/lists/rukuList.js
new file mode 100644
index 0000000..e6ff3e5
--- /dev/null
+++ b/lib_cjs/lists/rukuList.js
@@ -0,0 +1,48 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.RukuList = void 0;
+exports.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,
+];
+//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/rukuList.js.map b/lib_cjs/lists/rukuList.js.map
new file mode 100644
index 0000000..660bac5
--- /dev/null
+++ b/lib_cjs/lists/rukuList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../../src/lists/rukuList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/lists/sajdaList.js b/lib_cjs/lists/sajdaList.js
new file mode 100644
index 0000000..6059962
--- /dev/null
+++ b/lib_cjs/lists/sajdaList.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SajdaList = void 0;
+//------------------ Page Data ---------------------
+// code to get starting pages for surahs
+// let res=[];
+// Page.reduce((s,c,p)=>{
+// 	while (c[0]>=s)
+// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
+// 	return s
+// },0)
+// export Page from "~/js/qdata-page.json"
+//------------------ Sajda Data ---------------------
+exports.SajdaList = [
+    // [ayaId, type]
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"],
+];
+//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/sajdaList.js.map b/lib_cjs/lists/sajdaList.js.map
new file mode 100644
index 0000000..93b0fe4
--- /dev/null
+++ b/lib_cjs/lists/sajdaList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../../src/lists/sajdaList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACxC,QAAA,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/surahList.js b/lib_cjs/lists/surahList.js
new file mode 100644
index 0000000..4c0cef3
--- /dev/null
+++ b/lib_cjs/lists/surahList.js
@@ -0,0 +1,122 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SuraList = void 0;
+exports.SuraList = [
+    [-1, -1, -1, -1, "", false, -1],
+    [0, 7, 5, 1, "الفاتحة", true, 1],
+    [7, 286, 87, 40, "البقرة", false, 2],
+    [293, 200, 89, 20, "آل عمران", false, 50],
+    [493, 176, 92, 24, "النساء", false, 77],
+    [669, 120, 112, 16, "المائدة", false, 107],
+    [789, 165, 55, 20, "الأنعام", true, 128],
+    [954, 206, 39, 24, "الأعراف", true, 151],
+    [1160, 75, 88, 10, "الأنفال", false, 177],
+    [1235, 129, 113, 16, "التوبة", false, 187],
+    [1364, 109, 51, 11, "يونس", true, 208],
+    [1473, 123, 52, 10, "هود", true, 222],
+    [1596, 111, 53, 12, "يوسف", true, 236],
+    [1707, 43, 96, 6, "الرعد", false, 249],
+    [1750, 52, 72, 7, "ابراهيم", true, 256],
+    [1802, 99, 54, 6, "الحجر", true, 262],
+    [1901, 128, 70, 16, "النحل", true, 268],
+    [2029, 111, 50, 12, "الإسراء", true, 282],
+    [2140, 110, 69, 12, "الكهف", true, 294],
+    [2250, 98, 44, 6, "مريم", true, 305],
+    [2348, 135, 45, 8, "طه", true, 313],
+    [2483, 112, 73, 7, "الأنبياء", true, 322],
+    [2595, 78, 103, 10, "الحج", false, 332],
+    [2673, 118, 74, 6, "المؤمنون", true, 342],
+    [2791, 64, 102, 9, "النور", false, 350],
+    [2855, 77, 42, 6, "الفرقان", true, 360],
+    [2932, 227, 47, 11, "الشعراء", true, 367],
+    [3159, 93, 48, 7, "النمل", true, 377],
+    [3252, 88, 49, 8, "القصص", true, 386],
+    [3340, 69, 85, 7, "العنكبوت", true, 397],
+    [3409, 60, 84, 6, "الروم", true, 405],
+    [3469, 34, 57, 3, "لقمان", true, 411],
+    [3503, 30, 75, 3, "السجدة", true, 415],
+    [3533, 73, 90, 9, "الأحزاب", false, 418],
+    [3606, 54, 58, 6, "سبإ", true, 428],
+    [3660, 45, 43, 5, "فاطر", true, 435],
+    [3705, 83, 41, 5, "يس", true, 441],
+    [3788, 182, 56, 5, "الصافات", true, 446],
+    [3970, 88, 38, 5, "ص", true, 453],
+    [4058, 75, 59, 8, "الزمر", true, 459],
+    [4133, 85, 60, 9, "غافر", true, 468],
+    [4218, 54, 61, 6, "فصلت", true, 477],
+    [4272, 53, 62, 5, "الشورى", true, 483],
+    [4325, 89, 63, 7, "الزخرف", true, 490],
+    [4414, 59, 64, 3, "الدخان", true, 496],
+    [4473, 37, 65, 4, "الجاثية", true, 499],
+    [4510, 35, 66, 4, "الأحقاف", true, 503],
+    [4545, 38, 95, 4, "محمد", false, 507],
+    [4583, 29, 111, 4, "الفتح", false, 511],
+    [4612, 18, 106, 2, "الحجرات", false, 516],
+    [4630, 45, 34, 3, "ق", true, 518],
+    [4675, 60, 67, 3, "الذاريات", true, 521],
+    [4735, 49, 76, 2, "الطور", true, 524],
+    [4784, 62, 23, 3, "النجم", true, 526],
+    [4846, 55, 37, 3, "القمر", true, 529],
+    [4901, 78, 97, 3, "الرحمن", false, 532],
+    [4979, 96, 46, 3, "الواقعة", true, 535],
+    [5075, 29, 94, 4, "الحديد", false, 538],
+    [5104, 22, 105, 3, "المجادلة", false, 542],
+    [5126, 24, 101, 3, "الحشر", false, 546],
+    [5150, 13, 91, 2, "الممتحنة", false, 549],
+    [5163, 14, 109, 2, "الصف", false, 552],
+    [5177, 11, 110, 2, "الجمعة", false, 553],
+    [5188, 11, 104, 2, "المنافقون", false, 555],
+    [5199, 18, 108, 2, "التغابن", false, 556],
+    [5217, 12, 99, 2, "الطلاق", false, 558],
+    [5229, 12, 107, 2, "التحريم", false, 560],
+    [5241, 30, 77, 2, "الملك", true, 562],
+    [5271, 52, 2, 2, "القلم", true, 565],
+    [5323, 52, 78, 2, "الحاقة", true, 567],
+    [5375, 44, 79, 2, "المعارج", true, 569],
+    [5419, 28, 71, 2, "نوح", true, 571],
+    [5447, 28, 40, 2, "الجن", true, 572],
+    [5475, 20, 3, 2, "المزمل", true, 574],
+    [5495, 56, 4, 2, "المدثر", true, 576],
+    [5551, 40, 31, 2, "القيامة", true, 578],
+    [5591, 31, 98, 2, "الانسان", false, 579],
+    [5622, 50, 33, 2, "المرسلات", true, 581],
+    [5672, 40, 80, 2, "النبإ", true, 582],
+    [5712, 46, 81, 2, "النازعات", true, 584],
+    [5758, 42, 24, 1, "عبس", true, 585],
+    [5800, 29, 7, 1, "التكوير", true, 586],
+    [5829, 19, 82, 1, "الإنفطار", true, 587],
+    [5848, 36, 86, 1, "المطففين", true, 588],
+    [5884, 25, 83, 1, "الإنشقاق", true, 589],
+    [5909, 22, 27, 1, "البروج", true, 590],
+    [5931, 17, 36, 1, "الطارق", true, 591],
+    [5948, 19, 8, 1, "الأعلى", true, 592],
+    [5967, 26, 68, 1, "الغاشية", true, 592],
+    [5993, 30, 10, 1, "الفجر", true, 593],
+    [6023, 20, 35, 1, "البلد", true, 594],
+    [6043, 15, 26, 1, "الشمس", true, 595],
+    [6058, 21, 9, 1, "الليل", true, 596],
+    [6079, 11, 11, 1, "الضحى", true, 596],
+    [6090, 8, 12, 1, "الشرح", true, 596],
+    [6098, 8, 28, 1, "التين", true, 597],
+    [6106, 19, 1, 1, "العلق", true, 597],
+    [6125, 5, 25, 1, "القدر", true, 598],
+    [6130, 8, 100, 1, "البينة", false, 599],
+    [6138, 8, 93, 1, "الزلزلة", false, 599],
+    [6146, 11, 14, 1, "العاديات", true, 600],
+    [6157, 11, 30, 1, "القارعة", true, 600],
+    [6168, 8, 16, 1, "التكاثر", true, 600],
+    [6176, 3, 13, 1, "العصر", true, 601],
+    [6179, 9, 32, 1, "الهمزة", true, 601],
+    [6188, 5, 19, 1, "الفيل", true, 601],
+    [6193, 4, 29, 1, "قريش", true, 602],
+    [6197, 7, 17, 1, "الماعون", true, 602],
+    [6204, 3, 15, 1, "الكوثر", true, 602],
+    [6207, 6, 18, 1, "الكافرون", true, 603],
+    [6213, 3, 114, 1, "النصر", false, 603],
+    [6216, 5, 6, 1, "المسد", true, 603],
+    [6221, 4, 22, 1, "الإخلاص", true, 604],
+    [6225, 5, 20, 1, "الفلق", true, 604],
+    [6230, 6, 21, 1, "الناس", true, 604],
+    [6236, 0, -1, -1, "", false, -1],
+];
+//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/surahList.js.map b/lib_cjs/lists/surahList.js.map
new file mode 100644
index 0000000..8420360
--- /dev/null
+++ b/lib_cjs/lists/surahList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../../src/lists/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/manzilList.js b/lib_cjs/manzilList.js
new file mode 100644
index 0000000..cb05048
--- /dev/null
+++ b/lib_cjs/manzilList.js
@@ -0,0 +1,6 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.ManzilList = void 0;
+//------------------ Manzil Data ---------------------
+exports.ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_cjs/manzilList.js.map b/lib_cjs/manzilList.js.map
new file mode 100644
index 0000000..816344a
--- /dev/null
+++ b/lib_cjs/manzilList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../src/manzilList.ts"],"names":[],"mappings":";;;AAEA,sDAAsD;AACzC,QAAA,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/nextAyah.js b/lib_cjs/nextAyah.js
new file mode 100644
index 0000000..922596a
--- /dev/null
+++ b/lib_cjs/nextAyah.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.nextAyah = nextAyah;
+var const_1 = require("./const");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var findSurahByAyaid_1 = require("./findSurahByAyaid");
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+function nextAyah(surah, ayah) {
+    if (surah < 1 || surah > const_1.meta.numSuras)
+        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
+    var ayaid = (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah);
+    return (0, findSurahByAyaid_1.findSurahByAyaid)(ayaid == const_1.meta.numAyas ? 1 : ayaid + 1);
+}
+//# sourceMappingURL=nextAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/nextAyah.js.map b/lib_cjs/nextAyah.js.map
new file mode 100644
index 0000000..36ac534
--- /dev/null
+++ b/lib_cjs/nextAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"nextAyah.js","sourceRoot":"","sources":["../src/nextAyah.ts"],"names":[],"mappings":";;AAWA,4BAMC;AAjBD,iCAA+B;AAC/B,uDAAsD;AACtD,uDAAsD;AAGtD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,YAAI,CAAC,QAAQ,CAAC,CAAC;IAEvE,IAAM,KAAK,GAAW,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,IAAA,mCAAgB,EAAC,KAAK,IAAI,YAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/pageMeta.js b/lib_cjs/pageMeta.js
new file mode 100644
index 0000000..3452bd2
--- /dev/null
+++ b/lib_cjs/pageMeta.js
@@ -0,0 +1,37 @@
+"use strict";
+var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
+    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
+        if (ar || !(i in from)) {
+            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
+            ar[i] = from[i];
+        }
+    }
+    return to.concat(ar || Array.prototype.slice.call(from));
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.pageMeta = pageMeta;
+var const_1 = require("./const");
+var findSurahByAyaid_1 = require("./findSurahByAyaid");
+var pageList_1 = require("./lists/pageList");
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+function pageMeta(pageNum) {
+    // todo rename to getPageMeta in next major version
+    if (pageNum < 1 || pageNum > const_1.meta.numPages)
+        throw new RangeError("pagenum must be between 1 and " + const_1.meta.numPages);
+    var _a = [
+        pageList_1.PageList[pageNum],
+        pageList_1.PageList[pageNum + 1],
+    ], curPage = _a[0], nextPage = _a[1];
+    return {
+        pageNum: pageNum,
+        first: (0, findSurahByAyaid_1.findSurahByAyaid)(curPage),
+        last: __spreadArray([], (0, findSurahByAyaid_1.findSurahByAyaid)(nextPage - 1), true),
+    };
+}
+//# sourceMappingURL=pageMeta.js.map
\ No newline at end of file
diff --git a/lib_cjs/pageMeta.js.map b/lib_cjs/pageMeta.js.map
new file mode 100644
index 0000000..1f6fb94
--- /dev/null
+++ b/lib_cjs/pageMeta.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"pageMeta.js","sourceRoot":"","sources":["../src/pageMeta.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,4BAeC;AA5BD,iCAA+B;AAC/B,uDAAsD;AACtD,6CAA4C;AAI5C;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,OAAa;IACpC,mDAAmD;IACnD,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,YAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,YAAI,CAAC,QAAQ,CAAC,CAAC;IAEnE,IAAA,KAAwC;QAC5C,mBAAQ,CAAC,OAAO,CAAC;QACjB,mBAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;KACtB,EAHM,OAAO,QAAA,EAAE,QAAQ,QAGvB,CAAC;IAEF,OAAO;QACL,OAAO,SAAA;QACP,KAAK,EAAE,IAAA,mCAAgB,EAAC,OAAO,CAAC;QAChC,IAAI,oBAAM,IAAA,mCAAgB,EAAC,QAAQ,GAAG,CAAC,CAAC,OAAC;KAC1C,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/prevAyah.js b/lib_cjs/prevAyah.js
new file mode 100644
index 0000000..1f8e20f
--- /dev/null
+++ b/lib_cjs/prevAyah.js
@@ -0,0 +1,19 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.prevAyah = prevAyah;
+var checkValidSurah_1 = require("./checkValidSurah");
+var const_1 = require("./const");
+var findAyaidBySurah_1 = require("./findAyaidBySurah");
+var findSurahByAyaid_1 = require("./findSurahByAyaid");
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+function prevAyah(surah, ayah) {
+    (0, checkValidSurah_1.checkValidSurah)(surah);
+    var ayaid = (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah);
+    return (0, findSurahByAyaid_1.findSurahByAyaid)(ayaid == 1 ? const_1.meta.numAyas : ayaid - 1);
+}
+//# sourceMappingURL=prevAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/prevAyah.js.map b/lib_cjs/prevAyah.js.map
new file mode 100644
index 0000000..b8b85c4
--- /dev/null
+++ b/lib_cjs/prevAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prevAyah.js","sourceRoot":"","sources":["../src/prevAyah.ts"],"names":[],"mappings":";;AAYA,4BAKC;AAjBD,qDAAoD;AACpD,iCAA+B;AAC/B,uDAAsD;AACtD,uDAAsD;AAGtD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC;IAEvB,IAAM,KAAK,GAAW,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,IAAA,mCAAgB,EAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,YAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/sajdaList.js b/lib_cjs/sajdaList.js
new file mode 100644
index 0000000..6059962
--- /dev/null
+++ b/lib_cjs/sajdaList.js
@@ -0,0 +1,32 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.SajdaList = void 0;
+//------------------ Page Data ---------------------
+// code to get starting pages for surahs
+// let res=[];
+// Page.reduce((s,c,p)=>{
+// 	while (c[0]>=s)
+// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
+// 	return s
+// },0)
+// export Page from "~/js/qdata-page.json"
+//------------------ Sajda Data ---------------------
+exports.SajdaList = [
+    // [ayaId, type]
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"],
+];
+//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_cjs/sajdaList.js.map b/lib_cjs/sajdaList.js.map
new file mode 100644
index 0000000..728bdae
--- /dev/null
+++ b/lib_cjs/sajdaList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../src/sajdaList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACxC,QAAA,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/utils.js b/lib_cjs/utils.js
new file mode 100644
index 0000000..7f3896a
--- /dev/null
+++ b/lib_cjs/utils.js
@@ -0,0 +1,31 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+exports.binarySearch = binarySearch;
+/**
+ * Performs a binary search on the given array to find the index of the specified element.
+ *
+ * @param ar - The array to search.
+ * @param el - The element to search for.
+ * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
+ * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
+ */
+function binarySearch(ar, el, compare_fn) {
+    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
+    var m = 0;
+    var n = ar.length - 1;
+    while (m <= n) {
+        var k = (n + m) >> 1;
+        var cmp = compare_fn(el, ar[k]);
+        if (cmp > 0) {
+            m = k + 1;
+        }
+        else if (cmp < 0) {
+            n = k - 1;
+        }
+        else {
+            return k;
+        }
+    }
+    return -m - 1;
+}
+//# sourceMappingURL=utils.js.map
\ No newline at end of file
diff --git a/lib_cjs/utils.js.map b/lib_cjs/utils.js.map
new file mode 100644
index 0000000..1915ab9
--- /dev/null
+++ b/lib_cjs/utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAQA,oCAmBG;AA3BH;;;;;;;GAOG;AACH,SAAgB,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,UAA8D;IAA9D,2BAAA,EAAA,uBAAgD,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,EAAL,CAAK;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,CAAC"}
\ No newline at end of file
diff --git a/lib_es/ayaStringSplitter.js b/lib_es/ayaStringSplitter.js
index 106c9d1..801d4b1 100644
--- a/lib_es/ayaStringSplitter.js
+++ b/lib_es/ayaStringSplitter.js
@@ -1,18 +1,37 @@
+import { checkValidSurahAyah } from "./checkValidSurahAyah";
 /**
  *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
  * @param {*} str String of type "x:y" or "x:y1-y2"
  * @returns {array} array [x,y] or [x,[y1,y2]] respectively
  */
 export function ayaStringSplitter(str) {
-    const [surah, ayahs] = str.trim().split(":");
-    if (!ayahs) {
+    const [surahStr, ayahsStr] = str.trim().split(":");
+    const surah = parseInt(surahStr, 10);
+    if (isNaN(surah)) {
+        throw "Error in surah format " + str;
+    }
+    if (!ayahsStr) {
         throw "Error in data " + str;
     }
-    return [
-        +surah,
-        ayahs.includes("-")
-            ? ayahs.split("-").map(Number)
-            : +ayahs,
-    ];
+    let ayahs;
+    if (ayahsStr.includes("-")) {
+        ayahs = ayahsStr.split("-").map(a => {
+            const ayah = parseInt(a, 10);
+            if (isNaN(ayah) || ayah === 0) {
+                throw "Error in ayah " + a;
+            }
+            return ayah;
+        });
+        if (ayahs[0] > ayahs[1])
+            throw "Error in ayah range " + str;
+    }
+    else {
+        ayahs = parseInt(ayahsStr, 10);
+        if (isNaN(ayahs) || ayahs === 0) {
+            throw "Error in data " + str;
+        }
+        checkValidSurahAyah(surah, ayahs);
+    }
+    return [surah, ayahs];
 }
 //# sourceMappingURL=ayaStringSplitter.js.map
\ No newline at end of file
diff --git a/lib_es/ayaStringSplitter.js.map b/lib_es/ayaStringSplitter.js.map
index a7f80d9..14ef5fb 100644
--- a/lib_es/ayaStringSplitter.js.map
+++ b/lib_es/ayaStringSplitter.js.map
@@ -1 +1 @@
-{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5C,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,gBAAgB,GAAG,GAAG,CAAA;KAC7B;IACD,OAAO;QACL,CAAC,KAAK;QACN,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;YACjB,CAAC,CAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAsB;YACpD,CAAC,CAAC,CAAC,KAAK;KACX,CAAA;AACH,CAAC"}
\ No newline at end of file
+{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAG3D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,wBAAwB,GAAG,GAAG,CAAA;IACtC,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gBAAgB,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED,IAAI,KAAgC,CAAA;IACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAqB,CAAA;QACtB,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,sBAAsB,GAAG,GAAG,CAAA;IAC7D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAG,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,gBAAgB,GAAG,GAAG,CAAA;QAC9B,CAAC;QACD,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;IAGD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/checkValidAyahId.js b/lib_es/checkValidAyahId.js
new file mode 100644
index 0000000..2b2e04c
--- /dev/null
+++ b/lib_es/checkValidAyahId.js
@@ -0,0 +1,13 @@
+import { meta } from "./const";
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayaId - The Ayah (verse) ID to check.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+export function checkValidAyahId(ayaId) {
+    if (ayaId < 1 || ayaId > meta.numAyas)
+        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
+    return true;
+}
+//# sourceMappingURL=checkValidAyahId.js.map
\ No newline at end of file
diff --git a/lib_es/checkValidAyahId.js.map b/lib_es/checkValidAyahId.js.map
new file mode 100644
index 0000000..29060ea
--- /dev/null
+++ b/lib_es/checkValidAyahId.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"checkValidAyahId.js","sourceRoot":"","sources":["../src/checkValidAyahId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;QACnC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_es/checkValidSurah.js b/lib_es/checkValidSurah.js
new file mode 100644
index 0000000..bd92710
--- /dev/null
+++ b/lib_es/checkValidSurah.js
@@ -0,0 +1,17 @@
+import { meta } from "./const";
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+export function checkValidSurah(surah, checkOnly = false) {
+    if (surah < 1 || surah > meta.numSuras) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    }
+    return true;
+}
+//# sourceMappingURL=checkValidSurah.js.map
\ No newline at end of file
diff --git a/lib_es/checkValidSurah.js.map b/lib_es/checkValidSurah.js.map
new file mode 100644
index 0000000..ca02589
--- /dev/null
+++ b/lib_es/checkValidSurah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"checkValidSurah.js","sourceRoot":"","sources":["../src/checkValidSurah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;;;;;;GAMG;AAEH,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,SAAS,GAAG,KAAK;IAC7D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_es/checkValidSurahAyah.js b/lib_es/checkValidSurahAyah.js
new file mode 100644
index 0000000..3f8abae
--- /dev/null
+++ b/lib_es/checkValidSurahAyah.js
@@ -0,0 +1,22 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { getSurahMeta } from "./getSurahMeta";
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+export function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+    if (!checkValidSurah(surah, checkOnly))
+        return false;
+    const [startAyahId, ayahCount] = getSurahMeta(surah);
+    if (ayah < 1 || ayah > ayahCount) {
+        if (checkOnly)
+            return false;
+        throw new RangeError("Ayah must be between 1 and " + ayahCount);
+    }
+    return true;
+}
+//# sourceMappingURL=checkValidSurahAyah.js.map
\ No newline at end of file
diff --git a/lib_es/checkValidSurahAyah.js.map b/lib_es/checkValidSurahAyah.js.map
new file mode 100644
index 0000000..9819c1e
--- /dev/null
+++ b/lib_es/checkValidSurahAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"checkValidSurahAyah.js","sourceRoot":"","sources":["../src/checkValidSurahAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAY,EAAE,IAAY,EAAE,SAAS,GAAG,KAAK;IAC/E,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findAyaidBySurah.js b/lib_es/findAyaidBySurah.js
new file mode 100644
index 0000000..90ee040
--- /dev/null
+++ b/lib_es/findAyaidBySurah.js
@@ -0,0 +1,14 @@
+import { checkValidSurahAyah } from "./checkValidSurahAyah";
+import { getSurahMeta } from "./getSurahMeta";
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+export function findAyaidBySurah(surah, ayah) {
+    checkValidSurahAyah(surah, ayah);
+    const [startAyahId] = getSurahMeta(surah);
+    return startAyahId + ayah;
+}
+//# sourceMappingURL=findAyaidBySurah.js.map
\ No newline at end of file
diff --git a/lib_es/findAyaidBySurah.js.map b/lib_es/findAyaidBySurah.js.map
new file mode 100644
index 0000000..3b4ee18
--- /dev/null
+++ b/lib_es/findAyaidBySurah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findAyaidBySurah.js","sourceRoot":"","sources":["../src/findAyaidBySurah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,IAAY;IACzD,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,WAAW,GAAG,IAAI,CAAC;AAC5B,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuz.js b/lib_es/findJuz.js
new file mode 100644
index 0000000..1bdd9a5
--- /dev/null
+++ b/lib_es/findJuz.js
@@ -0,0 +1,18 @@
+import { checkValidSurahAyah } from "./checkValidSurahAyah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+export function findJuz(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode
+        ? ayah
+        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
+    return findJuzByAyaid(ayahId);
+}
+//# sourceMappingURL=findJuz.js.map
\ No newline at end of file
diff --git a/lib_es/findJuz.js.map b/lib_es/findJuz.js.map
new file mode 100644
index 0000000..be95c72
--- /dev/null
+++ b/lib_es/findJuz.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuz.js","sourceRoot":"","sources":["../src/findJuz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY,EAAE,OAAe,CAAC,EAAE,QAAQ,GAAG,KAAK;IACtE,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAEpF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzAndShift.js b/lib_es/findJuzAndShift.js
new file mode 100644
index 0000000..2793b22
--- /dev/null
+++ b/lib_es/findJuzAndShift.js
@@ -0,0 +1,34 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { JuzList } from "./lists/juzList";
+import { SuraList } from "./lists/surahList";
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+export function findJuzAndShift(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    const juz = findJuzByAyaid(ayahId);
+    const leftAyahId = JuzList[juz];
+    if (ayahMode)
+        [surah] = findSurahByAyaid(ayahId);
+    const [surahStartAyahId] = SuraList[surah];
+    return {
+        juz,
+        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+        leftAyahId
+    };
+}
+//# sourceMappingURL=findJuzAndShift.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzAndShift.js.map b/lib_es/findJuzAndShift.js.map
new file mode 100644
index 0000000..63fcf4a
--- /dev/null
+++ b/lib_es/findJuzAndShift.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzAndShift.js","sourceRoot":"","sources":["../src/findJuzAndShift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAMhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ;QAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO;QACL,GAAG;QACH,oBAAoB,EAAE,gBAAgB,GAAG,UAAU,GAAG,CAAC;QACvD,UAAU;KACX,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzByAyaid.js b/lib_es/findJuzByAyaid.js
new file mode 100644
index 0000000..eae0e3a
--- /dev/null
+++ b/lib_es/findJuzByAyaid.js
@@ -0,0 +1,13 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { JuzList } from "./lists/juzList";
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+export function findJuzByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    return JuzList.findIndex(x => x > ayaId) - 1;
+}
+//# sourceMappingURL=findJuzByAyaid.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzByAyaid.js.map b/lib_es/findJuzByAyaid.js.map
new file mode 100644
index 0000000..e7b8dd5
--- /dev/null
+++ b/lib_es/findJuzByAyaid.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzByAyaid.js","sourceRoot":"","sources":["../src/findJuzByAyaid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI1C;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzHizb.js b/lib_es/findJuzHizb.js
new file mode 100644
index 0000000..ea983d4
--- /dev/null
+++ b/lib_es/findJuzHizb.js
@@ -0,0 +1,18 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+export function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return findJuzHizbByAyaid(ayahId);
+}
+//# sourceMappingURL=findJuzHizb.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzHizb.js.map b/lib_es/findJuzHizb.js.map
new file mode 100644
index 0000000..aceb7c3
--- /dev/null
+++ b/lib_es/findJuzHizb.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzHizb.js","sourceRoot":"","sources":["../src/findJuzHizb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,KAAY,EACZ,OAAe,CAAC,EAChB,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzHizbByAyaid.js b/lib_es/findJuzHizbByAyaid.js
new file mode 100644
index 0000000..c8fa51d
--- /dev/null
+++ b/lib_es/findJuzHizbByAyaid.js
@@ -0,0 +1,16 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+import { HizbQuarterList } from "./lists/hizbList";
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+export function findJuzHizbByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const juz = findJuzByAyaid(ayaId);
+    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
+    return { juz, hizb: id % 8 || 8, id };
+}
+//# sourceMappingURL=findJuzHizbByAyaid.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzHizbByAyaid.js.map b/lib_es/findJuzHizbByAyaid.js.map
new file mode 100644
index 0000000..6ca401b
--- /dev/null
+++ b/lib_es/findJuzHizbByAyaid.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzHizbByAyaid.js","sourceRoot":"","sources":["../src/findJuzHizbByAyaid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElC,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AACxC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzMetaBySurah.js b/lib_es/findJuzMetaBySurah.js
new file mode 100644
index 0000000..94a3ae6
--- /dev/null
+++ b/lib_es/findJuzMetaBySurah.js
@@ -0,0 +1,25 @@
+import { meta } from "./const";
+import { findJuzAndShift } from "./findJuzAndShift";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { JuzList } from "./lists/juzList";
+/**
+ * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
+ * @param {*} suraNumber
+ * @param {*} ayaNumber
+ * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
+ */
+export function findJuzMetaBySurah(surah, ayah = 1) {
+    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
+    let rightJuz = leftjuz;
+    while (rightJuz < meta.numJuzs &&
+        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
+        rightJuz++;
+    return {
+        leftjuz,
+        ayahsBetweenJuzSurah,
+        rightJuz,
+        leftAyahId,
+        rightAyahId: JuzList[rightJuz + 1],
+    };
+}
+//# sourceMappingURL=findJuzMetaBySurah.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzMetaBySurah.js.map b/lib_es/findJuzMetaBySurah.js.map
new file mode 100644
index 0000000..eaa1bc1
--- /dev/null
+++ b/lib_es/findJuzMetaBySurah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findJuzMetaBySurah.js","sourceRoot":"","sources":["../src/findJuzMetaBySurah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAY,EAAE,OAAe,CAAC;IAC/D,MAAM,EACJ,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,GAC/C,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjC,IAAI,QAAQ,GAAQ,OAAO,CAAC;IAC5B,OAAO,QAAQ,GAAG,IAAI,CAAC,OAAO;QAC5B,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;QACnD,QAAQ,EAAE,CAAC;IAEb,OAAO;QACL,OAAO;QACP,oBAAoB;QACpB,QAAQ;QACR,UAAU;QACV,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findPage.js b/lib_es/findPage.js
new file mode 100644
index 0000000..6c4c996
--- /dev/null
+++ b/lib_es/findPage.js
@@ -0,0 +1,19 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { PageList } from "./lists/pageList";
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+export function findPage(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return PageList.findIndex(x => x > ayahId) - 1;
+}
+//# sourceMappingURL=findPage.js.map
\ No newline at end of file
diff --git a/lib_es/findPage.js.map b/lib_es/findPage.js.map
new file mode 100644
index 0000000..cfe1bf7
--- /dev/null
+++ b/lib_es/findPage.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findPage.js","sourceRoot":"","sources":["../src/findPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAQ,GAAG,KAAK;IACnE,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findRangeAroundAyah.js b/lib_es/findRangeAroundAyah.js
new file mode 100644
index 0000000..87d78b2
--- /dev/null
+++ b/lib_es/findRangeAroundAyah.js
@@ -0,0 +1,63 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { meta } from "./const";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+import { findPage } from "./findPage";
+import { JuzList } from "./lists/juzList";
+import { PageList } from "./lists/pageList";
+import { SuraList } from "./lists/surahList";
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+// export function pageMetaOld(pageNum: number): any {
+//   if (pageNum < 1 || pageNum > meta.numPages)
+//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
+//   const [curPage, nextPage] = [
+//     findSurahByAyaid(PageList[pageNum]),
+//     findSurahByAyaid(PageList[pageNum + 1]),
+//   ]
+//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
+//     curPage[0],
+//     curPage[1],
+//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
+//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
+//   ]
+//   return {
+//     pageNum,
+//     first: [firstSurah, firstAyah],
+//     last: [lastSurah, lastAyah],
+//   }
+// }
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+export function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+    const ayahId = ayahMode
+        ? ayah
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    switch (mode) {
+        case "juz": {
+            const juz = findJuzByAyaid(ayahId);
+            return [JuzList[juz], JuzList[juz + 1] - 1];
+        }
+        case "surah": {
+            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+        }
+        case "ayah": {
+            return [ayahId, ayahId];
+        }
+        case "page": {
+            const page = findPage(-1, ayahId, true);
+            return [PageList[page], PageList[page + 1] - 1];
+        }
+        case "all":
+        default:
+            return [1, meta.numAyas];
+    }
+}
+//# sourceMappingURL=findRangeAroundAyah.js.map
\ No newline at end of file
diff --git a/lib_es/findRangeAroundAyah.js.map b/lib_es/findRangeAroundAyah.js.map
new file mode 100644
index 0000000..86b244d
--- /dev/null
+++ b/lib_es/findRangeAroundAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findRangeAroundAyah.js","sourceRoot":"","sources":["../src/findRangeAroundAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;;GAGG;AACH,sDAAsD;AACtD,gDAAgD;AAChD,2EAA2E;AAC3E,kCAAkC;AAClC,2CAA2C;AAC3C,+CAA+C;AAC/C,MAAM;AACN,2DAA2D;AAC3D,kBAAkB;AAClB,kBAAkB;AAClB,yDAAyD;AACzD,0EAA0E;AAC1E,MAAM;AACN,aAAa;AACb,eAAe;AACf,sCAAsC;AACtC,mCAAmC;AACnC,MAAM;AACN,IAAI;AAGJ;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,KAAK,CAAC;QACX;YACE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findSurahByAyaid.js b/lib_es/findSurahByAyaid.js
new file mode 100644
index 0000000..495dbd5
--- /dev/null
+++ b/lib_es/findSurahByAyaid.js
@@ -0,0 +1,14 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { SuraList } from "./lists/surahList";
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+export function findSurahByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
+    return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+//# sourceMappingURL=findSurahByAyaid.js.map
\ No newline at end of file
diff --git a/lib_es/findSurahByAyaid.js.map b/lib_es/findSurahByAyaid.js.map
new file mode 100644
index 0000000..d1659c9
--- /dev/null
+++ b/lib_es/findSurahByAyaid.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"findSurahByAyaid.js","sourceRoot":"","sources":["../src/findSurahByAyaid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExB,MAAM,OAAO,GAAU,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_es/getAyaCountinSura.js b/lib_es/getAyaCountinSura.js
new file mode 100644
index 0000000..1408ef8
--- /dev/null
+++ b/lib_es/getAyaCountinSura.js
@@ -0,0 +1,10 @@
+import { getSurahMeta } from "./getSurahMeta";
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+export function getAyaCountinSura(surah) {
+    return getSurahMeta(surah)[1];
+}
+//# sourceMappingURL=getAyaCountinSura.js.map
\ No newline at end of file
diff --git a/lib_es/getAyaCountinSura.js.map b/lib_es/getAyaCountinSura.js.map
new file mode 100644
index 0000000..a794306
--- /dev/null
+++ b/lib_es/getAyaCountinSura.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getAyaCountinSura.js","sourceRoot":"","sources":["../src/getAyaCountinSura.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/getSurahMeta.js b/lib_es/getSurahMeta.js
new file mode 100644
index 0000000..aa9435c
--- /dev/null
+++ b/lib_es/getSurahMeta.js
@@ -0,0 +1,13 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { SuraList } from "./lists/surahList";
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+export function getSurahMeta(surah) {
+    checkValidSurah(surah);
+    return SuraList[surah];
+}
+//# sourceMappingURL=getSurahMeta.js.map
\ No newline at end of file
diff --git a/lib_es/getSurahMeta.js.map b/lib_es/getSurahMeta.js.map
new file mode 100644
index 0000000..4f7444c
--- /dev/null
+++ b/lib_es/getSurahMeta.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"getSurahMeta.js","sourceRoot":"","sources":["../src/getSurahMeta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/hizbList.js b/lib_es/hizbList.js
index 6bb7381..ca143f3 100644
--- a/lib_es/hizbList.js
+++ b/lib_es/hizbList.js
@@ -1,3 +1,4 @@
+//------------------ Hizb Data ---------------------
 export const 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,
diff --git a/lib_es/hizbList.js.map b/lib_es/hizbList.js.map
index 04c2ab8..f7cfcca 100644
--- a/lib_es/hizbList.js.map
+++ b/lib_es/hizbList.js.map
@@ -1 +1 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
+{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_es/index.js b/lib_es/index.js
index 8a4bb86..1d4340c 100644
--- a/lib_es/index.js
+++ b/lib_es/index.js
@@ -1,330 +1,43 @@
 // Quran Meta
-import { meta } from "./const";
+// export {
+//   AyahId,
+//   AyahNo, Juz, JuzMeta, Page, PageMeta, Sajda,
+//   Surah, SurahAyah, SurahMeta
+// }
 //export default QuranMeta;
 //------------------ Sura Data ---------------------
 export { suraNames as suraNamesEn } from "./i18n/sura.en";
 export { suraNames as suraNamesRu } from "./i18n/sura.ru";
-import { SuraList } from "./surahList";
-//------------------ Juz Data ---------------------
-const 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,
-];
-//------------------ Hizb Data ---------------------
-import { HizbQuarterList } from "./hizbList";
-//------------------ Manzil Data ---------------------
-const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
 //------------------ Ruku Data ---------------------
 // export Ruku  from "~/js/qdata-ruku.json"
-import { RukuList } from "./rukuList";
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-import { PageList } from "./pageList";
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-const SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
+export { RukuList } from "./lists/rukuList";
 //export default QuranMeta;
-import { ayaStringSplitter } from "./ayaStringSplitter";
-export { meta, SuraList, JuzList, HizbQuarterList, ManzilList, RukuList, PageList, SajdaList, ayaStringSplitter, };
-function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
-    let m = 0;
-    let n = ar.length - 1;
-    while (m <= n) {
-        const k = (n + m) >> 1;
-        const cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-function checkValidSurah(surah, checkOnly = false) {
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
-    return suraNum < 0
-        ? [114, ayaId - SuraList[114][0]]
-        : [suraNum, ayaId - SuraList[suraNum][0]];
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(x => x > ayaId) - 1;
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const juz = findJuzByAyaid(ayaId);
-    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
-    return { juz, hizb: id % 8 || 8, id };
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuz(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuzHizb(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahJuzFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-    // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahPageFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-    // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-export function findJuzAndShift(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    const juz = findJuzByAyaid(ayahId);
-    const leftAyahId = JuzList[juz];
-    if (surah < 0)
-        [surah] = findSurahByAyaid(leftAyahId);
-    const [surahStartAyahId] = SuraList[surah];
-    return {
-        juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId,
-    };
-}
-//todo explain function
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export function findJuzMetaBySurah(surah, ayah = 1) {
-    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
-    let rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz,
-        ayahsBetweenJuzSurah,
-        rightJuz,
-        leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-/**
- * Get Surah meta
- * @param surah
- */
-export function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-export function findPage(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(x => x > ayahId) - 1;
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-export function findAyaidBySurah(surah, ayah) {
-    const [startAyahId] = getSurahMeta(surah);
-    return startAyahId + ayah;
-}
-/**
- *
- * @param {*} surah
- */
-export function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-export function pageMeta(pageNum) {
-    // todo rename to getPageMeta in next major version
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    const [curPage, nextPage] = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ];
-    return {
-        pageNum,
-        first: findSurahByAyaid(curPage),
-        last: [...findSurahByAyaid(nextPage - 1)],
-    };
-}
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-export function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            const juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            const page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
+export { ayaStringSplitter } from "./ayaStringSplitter";
+export { checkValidAyahId } from "./checkValidAyahId";
+export { checkValidSurah } from "./checkValidSurah";
+export { checkValidSurahAyah } from "./checkValidSurahAyah";
+export { meta } from "./const";
+export { findAyaidBySurah } from "./findAyaidBySurah";
+export { findJuz } from "./findJuz";
+export { findJuzAndShift } from "./findJuzAndShift";
+export { findJuzByAyaid } from "./findJuzByAyaid";
+export { findJuzHizb } from "./findJuzHizb";
+export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
+export { findJuzMetaBySurah } from "./findJuzMetaBySurah";
+export { findPage } from "./findPage";
+export { findRangeAroundAyah } from "./findRangeAroundAyah";
+export { findSurahByAyaid } from "./findSurahByAyaid";
+export { getAyaCountinSura } from "./getAyaCountinSura";
+export { getSurahMeta } from "./getSurahMeta";
+export { isAyahJuzFirst } from "./isAyahJuzFirst";
+export { isAyahPageFirst } from "./isAyahPageFirst";
+export { HizbQuarterList } from "./lists/hizbList";
+export { JuzList } from "./lists/juzList";
+export { ManzilList } from "./lists/manzilList";
+export { PageList } from "./lists/pageList";
+export { SajdaList } from "./lists/sajdaList";
+export { SuraList } from "./lists/surahList";
+export { nextAyah } from "./nextAyah";
+export { pageMeta } from "./pageMeta";
+export { prevAyah } from "./prevAyah";
 //# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib_es/index.js.map b/lib_es/index.js.map
index fa424bc..cc7647f 100644
--- a/lib_es/index.js.map
+++ b/lib_es/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AA2B9B,2BAA2B;AAC3B,oDAAoD;AAEpD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,mDAAmD;AACnD,MAAM,OAAO,GAAa;IACxB,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAA;AAED,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,sDAAsD;AAEtD,MAAM,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;AAE5E,oDAAoD;AACpD,2CAA2C;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,0CAA0C;AAE1C,qDAAqD;AAErD,MAAM,SAAS,GAAY;IACzB,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAA;AACD,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,OAAO,EACP,eAAe,EACf,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,iBAAiB,GAClB,CAAA;AAED,SAAS,YAAY,CACnB,EAAiB,EACjB,EAAU,EACV,aAA+C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,IAAI,CAAC,EAAE;QACb,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACtB,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE;YACX,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE;YAClB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;aAAM;YACL,OAAO,CAAC,CAAA;SACT;KACF;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;QACnC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;IACrE,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,KAAY,EAAE,SAAS,GAAG,KAAK;IACtD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE;QACtC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAA;QAC3B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;KACrE;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAEvB,MAAM,OAAO,GAAU,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IACjE,OAAO,OAAO,GAAG,CAAC;QAChB,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAEvB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;AAC9C,CAAC;AACD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,gBAAgB,CAAC,KAAK,CAAC,CAAA;IAEvB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAA;IAEjC,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAA;IACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAA;AACvC,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY,EAAE,OAAe,CAAC,EAAE,QAAQ,GAAG,KAAK;IACtE,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;IAEzE,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,KAAY,EACZ,OAAe,CAAC,EAChB,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;IAEzE,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAA;AACnC,CAAC;AACD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;IAEzE,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACpC,uDAAuD;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;IAEzE,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IACrC,wDAAwD;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAMhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;IAEzE,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IAClC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,KAAK,GAAG,CAAC;QAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IACrD,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC1C,OAAO;QACL,GAAG;QACH,oBAAoB,EAAE,gBAAgB,GAAG,UAAU,GAAG,CAAC;QACvD,UAAU;KACX,CAAA;AACH,CAAC;AAED,uBAAuB;AACvB;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAY,EAAE,OAAe,CAAC;IAC/D,MAAM,EACJ,GAAG,EAAE,OAAO,EACZ,oBAAoB,EACpB,UAAU,GACX,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAEhC,IAAI,QAAQ,GAAQ,OAAO,CAAA;IAC3B,OACE,QAAQ,GAAG,IAAI,CAAC,OAAO;QACvB,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;QAEnD,QAAQ,EAAE,CAAA;IAEZ,OAAO;QACL,OAAO;QACP,oBAAoB;QACpB,QAAQ;QACR,UAAU;QACV,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnC,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,eAAe,CAAC,KAAK,CAAC,CAAA;IACtB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AACxB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAQ,GAAG,KAAK;IACnE,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;IAEzE,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,IAAY;IACzD,MAAM,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;IACzC,OAAO,WAAW,GAAG,IAAI,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEtE,MAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACnD,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,eAAe,CAAC,KAAK,CAAC,CAAA;IAEtB,MAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACnD,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAa;IACpC,mDAAmD;IACnD,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;IAExE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAqB;QAC5C,QAAQ,CAAC,OAAO,CAAC;QACjB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;KACtB,CAAA;IAED,OAAO;QACL,OAAO;QACP,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KAC1C,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,sDAAsD;AACtD,gDAAgD;AAChD,2EAA2E;AAE3E,kCAAkC;AAClC,2CAA2C;AAC3C,+CAA+C;AAC/C,MAAM;AACN,2DAA2D;AAC3D,kBAAkB;AAClB,kBAAkB;AAClB,yDAAyD;AACzD,0EAA0E;AAC1E,MAAM;AAEN,aAAa;AACb,eAAe;AACf,sCAAsC;AACtC,mCAAmC;AACnC,MAAM;AACN,IAAI;AACJ;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAA;IAEzE,QAAQ,IAAI,EAAE;QACZ,KAAK,KAAK,CAAC,CAAC;YACV,MAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAA;YACvC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;SAC5C;QAED,KAAK,OAAO,CAAC,CAAC;YACZ,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;SACxE;QAED,KAAK,MAAM,CAAC,CAAC;YACX,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SACxB;QACD,KAAK,MAAM,CAAC,CAAC;YACX,MAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;YAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;SAChD;QAED,KAAK,KAAK,CAAC;QACX;YACE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;KAC3B;AACH,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AAEb,WAAW;AACX,YAAY;AACZ,iDAAiD;AACjD,gCAAgC;AAChC,IAAI;AACJ,2BAA2B;AAC3B,oDAAoD;AAEpD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGzD,oDAAoD;AACpD,2CAA2C;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
\ No newline at end of file
diff --git a/lib_es/isAyahJuzFirst.js b/lib_es/isAyahJuzFirst.js
new file mode 100644
index 0000000..9438866
--- /dev/null
+++ b/lib_es/isAyahJuzFirst.js
@@ -0,0 +1,22 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { JuzList } from "./lists/juzList";
+import { binarySearch } from "./utils";
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+export function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return binarySearch(JuzList, ayahId);
+    // return JuzList.findIndex((x: AyahId) => x == ayahId)
+}
+//# sourceMappingURL=isAyahJuzFirst.js.map
\ No newline at end of file
diff --git a/lib_es/isAyahJuzFirst.js.map b/lib_es/isAyahJuzFirst.js.map
new file mode 100644
index 0000000..b070282
--- /dev/null
+++ b/lib_es/isAyahJuzFirst.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"isAyahJuzFirst.js","sourceRoot":"","sources":["../src/isAyahJuzFirst.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,uDAAuD;AACzD,CAAC"}
\ No newline at end of file
diff --git a/lib_es/isAyahPageFirst.js b/lib_es/isAyahPageFirst.js
new file mode 100644
index 0000000..f0dfe19
--- /dev/null
+++ b/lib_es/isAyahPageFirst.js
@@ -0,0 +1,21 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { PageList } from "./lists/pageList";
+import { binarySearch } from "./utils";
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+export function isAyahPageFirst(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode
+        ? (checkValidAyahId(ayah) && ayah)
+        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
+    return binarySearch(PageList, ayahId);
+    // return PageList.findIndex((x: AyahId) => x == ayahId)
+}
+//# sourceMappingURL=isAyahPageFirst.js.map
\ No newline at end of file
diff --git a/lib_es/isAyahPageFirst.js.map b/lib_es/isAyahPageFirst.js.map
new file mode 100644
index 0000000..5ee1775
--- /dev/null
+++ b/lib_es/isAyahPageFirst.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"isAyahPageFirst.js","sourceRoot":"","sources":["../src/isAyahPageFirst.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,wDAAwD;AAC1D,CAAC"}
\ No newline at end of file
diff --git a/lib_es/juzList.js b/lib_es/juzList.js
new file mode 100644
index 0000000..9d8212d
--- /dev/null
+++ b/lib_es/juzList.js
@@ -0,0 +1,7 @@
+//------------------ Juz Data ---------------------
+export const 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,
+];
+//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_es/juzList.js.map b/lib_es/juzList.js.map
new file mode 100644
index 0000000..7fd5c63
--- /dev/null
+++ b/lib_es/juzList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../src/juzList.ts"],"names":[],"mappings":"AAEA,mDAAmD;AACnD,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/lists/hizbList.js b/lib_es/lists/hizbList.js
new file mode 100644
index 0000000..ca143f3
--- /dev/null
+++ b/lib_es/lists/hizbList.js
@@ -0,0 +1,22 @@
+//------------------ Hizb Data ---------------------
+export const 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,
+];
+//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/hizbList.js.map b/lib_es/lists/hizbList.js.map
new file mode 100644
index 0000000..847c335
--- /dev/null
+++ b/lib_es/lists/hizbList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../../src/lists/hizbList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_es/lists/juzList.js b/lib_es/lists/juzList.js
new file mode 100644
index 0000000..9d8212d
--- /dev/null
+++ b/lib_es/lists/juzList.js
@@ -0,0 +1,7 @@
+//------------------ Juz Data ---------------------
+export const 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,
+];
+//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/juzList.js.map b/lib_es/lists/juzList.js.map
new file mode 100644
index 0000000..fe2f8f2
--- /dev/null
+++ b/lib_es/lists/juzList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../../src/lists/juzList.ts"],"names":[],"mappings":"AAEA,mDAAmD;AACnD,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/lists/manzilList.js b/lib_es/lists/manzilList.js
new file mode 100644
index 0000000..83a3955
--- /dev/null
+++ b/lib_es/lists/manzilList.js
@@ -0,0 +1,3 @@
+//------------------ Manzil Data ---------------------
+export const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/manzilList.js.map b/lib_es/lists/manzilList.js.map
new file mode 100644
index 0000000..13d879f
--- /dev/null
+++ b/lib_es/lists/manzilList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../../src/lists/manzilList.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/lists/pageList.js b/lib_es/lists/pageList.js
new file mode 100644
index 0000000..1586192
--- /dev/null
+++ b/lib_es/lists/pageList.js
@@ -0,0 +1,48 @@
+export const 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,
+];
+//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/pageList.js.map b/lib_es/lists/pageList.js.map
new file mode 100644
index 0000000..99b928e
--- /dev/null
+++ b/lib_es/lists/pageList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../../src/lists/pageList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/lib_es/lists/rukuList.js b/lib_es/lists/rukuList.js
new file mode 100644
index 0000000..526a07a
--- /dev/null
+++ b/lib_es/lists/rukuList.js
@@ -0,0 +1,45 @@
+export const 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,
+];
+//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/rukuList.js.map b/lib_es/lists/rukuList.js.map
new file mode 100644
index 0000000..35f1a0e
--- /dev/null
+++ b/lib_es/lists/rukuList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../../src/lists/rukuList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_es/lists/sajdaList.js b/lib_es/lists/sajdaList.js
new file mode 100644
index 0000000..8c843b6
--- /dev/null
+++ b/lib_es/lists/sajdaList.js
@@ -0,0 +1,29 @@
+//------------------ Page Data ---------------------
+// code to get starting pages for surahs
+// let res=[];
+// Page.reduce((s,c,p)=>{
+// 	while (c[0]>=s)
+// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
+// 	return s
+// },0)
+// export Page from "~/js/qdata-page.json"
+//------------------ Sajda Data ---------------------
+export const SajdaList = [
+    // [ayaId, type]
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"],
+];
+//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/sajdaList.js.map b/lib_es/lists/sajdaList.js.map
new file mode 100644
index 0000000..b5ea676
--- /dev/null
+++ b/lib_es/lists/sajdaList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../../src/lists/sajdaList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/lists/surahList.js b/lib_es/lists/surahList.js
new file mode 100644
index 0000000..828e937
--- /dev/null
+++ b/lib_es/lists/surahList.js
@@ -0,0 +1,119 @@
+export const SuraList = [
+    [-1, -1, -1, -1, "", false, -1],
+    [0, 7, 5, 1, "الفاتحة", true, 1],
+    [7, 286, 87, 40, "البقرة", false, 2],
+    [293, 200, 89, 20, "آل عمران", false, 50],
+    [493, 176, 92, 24, "النساء", false, 77],
+    [669, 120, 112, 16, "المائدة", false, 107],
+    [789, 165, 55, 20, "الأنعام", true, 128],
+    [954, 206, 39, 24, "الأعراف", true, 151],
+    [1160, 75, 88, 10, "الأنفال", false, 177],
+    [1235, 129, 113, 16, "التوبة", false, 187],
+    [1364, 109, 51, 11, "يونس", true, 208],
+    [1473, 123, 52, 10, "هود", true, 222],
+    [1596, 111, 53, 12, "يوسف", true, 236],
+    [1707, 43, 96, 6, "الرعد", false, 249],
+    [1750, 52, 72, 7, "ابراهيم", true, 256],
+    [1802, 99, 54, 6, "الحجر", true, 262],
+    [1901, 128, 70, 16, "النحل", true, 268],
+    [2029, 111, 50, 12, "الإسراء", true, 282],
+    [2140, 110, 69, 12, "الكهف", true, 294],
+    [2250, 98, 44, 6, "مريم", true, 305],
+    [2348, 135, 45, 8, "طه", true, 313],
+    [2483, 112, 73, 7, "الأنبياء", true, 322],
+    [2595, 78, 103, 10, "الحج", false, 332],
+    [2673, 118, 74, 6, "المؤمنون", true, 342],
+    [2791, 64, 102, 9, "النور", false, 350],
+    [2855, 77, 42, 6, "الفرقان", true, 360],
+    [2932, 227, 47, 11, "الشعراء", true, 367],
+    [3159, 93, 48, 7, "النمل", true, 377],
+    [3252, 88, 49, 8, "القصص", true, 386],
+    [3340, 69, 85, 7, "العنكبوت", true, 397],
+    [3409, 60, 84, 6, "الروم", true, 405],
+    [3469, 34, 57, 3, "لقمان", true, 411],
+    [3503, 30, 75, 3, "السجدة", true, 415],
+    [3533, 73, 90, 9, "الأحزاب", false, 418],
+    [3606, 54, 58, 6, "سبإ", true, 428],
+    [3660, 45, 43, 5, "فاطر", true, 435],
+    [3705, 83, 41, 5, "يس", true, 441],
+    [3788, 182, 56, 5, "الصافات", true, 446],
+    [3970, 88, 38, 5, "ص", true, 453],
+    [4058, 75, 59, 8, "الزمر", true, 459],
+    [4133, 85, 60, 9, "غافر", true, 468],
+    [4218, 54, 61, 6, "فصلت", true, 477],
+    [4272, 53, 62, 5, "الشورى", true, 483],
+    [4325, 89, 63, 7, "الزخرف", true, 490],
+    [4414, 59, 64, 3, "الدخان", true, 496],
+    [4473, 37, 65, 4, "الجاثية", true, 499],
+    [4510, 35, 66, 4, "الأحقاف", true, 503],
+    [4545, 38, 95, 4, "محمد", false, 507],
+    [4583, 29, 111, 4, "الفتح", false, 511],
+    [4612, 18, 106, 2, "الحجرات", false, 516],
+    [4630, 45, 34, 3, "ق", true, 518],
+    [4675, 60, 67, 3, "الذاريات", true, 521],
+    [4735, 49, 76, 2, "الطور", true, 524],
+    [4784, 62, 23, 3, "النجم", true, 526],
+    [4846, 55, 37, 3, "القمر", true, 529],
+    [4901, 78, 97, 3, "الرحمن", false, 532],
+    [4979, 96, 46, 3, "الواقعة", true, 535],
+    [5075, 29, 94, 4, "الحديد", false, 538],
+    [5104, 22, 105, 3, "المجادلة", false, 542],
+    [5126, 24, 101, 3, "الحشر", false, 546],
+    [5150, 13, 91, 2, "الممتحنة", false, 549],
+    [5163, 14, 109, 2, "الصف", false, 552],
+    [5177, 11, 110, 2, "الجمعة", false, 553],
+    [5188, 11, 104, 2, "المنافقون", false, 555],
+    [5199, 18, 108, 2, "التغابن", false, 556],
+    [5217, 12, 99, 2, "الطلاق", false, 558],
+    [5229, 12, 107, 2, "التحريم", false, 560],
+    [5241, 30, 77, 2, "الملك", true, 562],
+    [5271, 52, 2, 2, "القلم", true, 565],
+    [5323, 52, 78, 2, "الحاقة", true, 567],
+    [5375, 44, 79, 2, "المعارج", true, 569],
+    [5419, 28, 71, 2, "نوح", true, 571],
+    [5447, 28, 40, 2, "الجن", true, 572],
+    [5475, 20, 3, 2, "المزمل", true, 574],
+    [5495, 56, 4, 2, "المدثر", true, 576],
+    [5551, 40, 31, 2, "القيامة", true, 578],
+    [5591, 31, 98, 2, "الانسان", false, 579],
+    [5622, 50, 33, 2, "المرسلات", true, 581],
+    [5672, 40, 80, 2, "النبإ", true, 582],
+    [5712, 46, 81, 2, "النازعات", true, 584],
+    [5758, 42, 24, 1, "عبس", true, 585],
+    [5800, 29, 7, 1, "التكوير", true, 586],
+    [5829, 19, 82, 1, "الإنفطار", true, 587],
+    [5848, 36, 86, 1, "المطففين", true, 588],
+    [5884, 25, 83, 1, "الإنشقاق", true, 589],
+    [5909, 22, 27, 1, "البروج", true, 590],
+    [5931, 17, 36, 1, "الطارق", true, 591],
+    [5948, 19, 8, 1, "الأعلى", true, 592],
+    [5967, 26, 68, 1, "الغاشية", true, 592],
+    [5993, 30, 10, 1, "الفجر", true, 593],
+    [6023, 20, 35, 1, "البلد", true, 594],
+    [6043, 15, 26, 1, "الشمس", true, 595],
+    [6058, 21, 9, 1, "الليل", true, 596],
+    [6079, 11, 11, 1, "الضحى", true, 596],
+    [6090, 8, 12, 1, "الشرح", true, 596],
+    [6098, 8, 28, 1, "التين", true, 597],
+    [6106, 19, 1, 1, "العلق", true, 597],
+    [6125, 5, 25, 1, "القدر", true, 598],
+    [6130, 8, 100, 1, "البينة", false, 599],
+    [6138, 8, 93, 1, "الزلزلة", false, 599],
+    [6146, 11, 14, 1, "العاديات", true, 600],
+    [6157, 11, 30, 1, "القارعة", true, 600],
+    [6168, 8, 16, 1, "التكاثر", true, 600],
+    [6176, 3, 13, 1, "العصر", true, 601],
+    [6179, 9, 32, 1, "الهمزة", true, 601],
+    [6188, 5, 19, 1, "الفيل", true, 601],
+    [6193, 4, 29, 1, "قريش", true, 602],
+    [6197, 7, 17, 1, "الماعون", true, 602],
+    [6204, 3, 15, 1, "الكوثر", true, 602],
+    [6207, 6, 18, 1, "الكافرون", true, 603],
+    [6213, 3, 114, 1, "النصر", false, 603],
+    [6216, 5, 6, 1, "المسد", true, 603],
+    [6221, 4, 22, 1, "الإخلاص", true, 604],
+    [6225, 5, 20, 1, "الفلق", true, 604],
+    [6230, 6, 21, 1, "الناس", true, 604],
+    [6236, 0, -1, -1, "", false, -1],
+];
+//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/surahList.js.map b/lib_es/lists/surahList.js.map
new file mode 100644
index 0000000..3306431
--- /dev/null
+++ b/lib_es/lists/surahList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../../src/lists/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_es/manzilList.js b/lib_es/manzilList.js
new file mode 100644
index 0000000..83a3955
--- /dev/null
+++ b/lib_es/manzilList.js
@@ -0,0 +1,3 @@
+//------------------ Manzil Data ---------------------
+export const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_es/manzilList.js.map b/lib_es/manzilList.js.map
new file mode 100644
index 0000000..0abf593
--- /dev/null
+++ b/lib_es/manzilList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../src/manzilList.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/nextAyah.js b/lib_es/nextAyah.js
new file mode 100644
index 0000000..09ab628
--- /dev/null
+++ b/lib_es/nextAyah.js
@@ -0,0 +1,16 @@
+import { meta } from "./const";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+export function nextAyah(surah, ayah) {
+    if (surah < 1 || surah > meta.numSuras)
+        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    const ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
+//# sourceMappingURL=nextAyah.js.map
\ No newline at end of file
diff --git a/lib_es/nextAyah.js.map b/lib_es/nextAyah.js.map
new file mode 100644
index 0000000..d3b0cba
--- /dev/null
+++ b/lib_es/nextAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"nextAyah.js","sourceRoot":"","sources":["../src/nextAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_es/pageMeta.js b/lib_es/pageMeta.js
new file mode 100644
index 0000000..789bfdc
--- /dev/null
+++ b/lib_es/pageMeta.js
@@ -0,0 +1,25 @@
+import { meta } from "./const";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { PageList } from "./lists/pageList";
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+export function pageMeta(pageNum) {
+    // todo rename to getPageMeta in next major version
+    if (pageNum < 1 || pageNum > meta.numPages)
+        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+    const [curPage, nextPage] = [
+        PageList[pageNum],
+        PageList[pageNum + 1],
+    ];
+    return {
+        pageNum,
+        first: findSurahByAyaid(curPage),
+        last: [...findSurahByAyaid(nextPage - 1)],
+    };
+}
+//# sourceMappingURL=pageMeta.js.map
\ No newline at end of file
diff --git a/lib_es/pageMeta.js.map b/lib_es/pageMeta.js.map
new file mode 100644
index 0000000..3ceea1e
--- /dev/null
+++ b/lib_es/pageMeta.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"pageMeta.js","sourceRoot":"","sources":["../src/pageMeta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAa;IACpC,mDAAmD;IACnD,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAqB;QAC5C,QAAQ,CAAC,OAAO,CAAC;QACjB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;KACtB,CAAC;IAEF,OAAO;QACL,OAAO;QACP,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_es/prevAyah.js b/lib_es/prevAyah.js
new file mode 100644
index 0000000..da91dfd
--- /dev/null
+++ b/lib_es/prevAyah.js
@@ -0,0 +1,16 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { meta } from "./const";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+export function prevAyah(surah, ayah) {
+    checkValidSurah(surah);
+    const ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
+//# sourceMappingURL=prevAyah.js.map
\ No newline at end of file
diff --git a/lib_es/prevAyah.js.map b/lib_es/prevAyah.js.map
new file mode 100644
index 0000000..64f76f9
--- /dev/null
+++ b/lib_es/prevAyah.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"prevAyah.js","sourceRoot":"","sources":["../src/prevAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,MAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_es/sajdaList.js b/lib_es/sajdaList.js
new file mode 100644
index 0000000..8c843b6
--- /dev/null
+++ b/lib_es/sajdaList.js
@@ -0,0 +1,29 @@
+//------------------ Page Data ---------------------
+// code to get starting pages for surahs
+// let res=[];
+// Page.reduce((s,c,p)=>{
+// 	while (c[0]>=s)
+// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
+// 	return s
+// },0)
+// export Page from "~/js/qdata-page.json"
+//------------------ Sajda Data ---------------------
+export const SajdaList = [
+    // [ayaId, type]
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"],
+];
+//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_es/sajdaList.js.map b/lib_es/sajdaList.js.map
new file mode 100644
index 0000000..f494cb9
--- /dev/null
+++ b/lib_es/sajdaList.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../src/sajdaList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/utils.js b/lib_es/utils.js
new file mode 100644
index 0000000..4bfaa7d
--- /dev/null
+++ b/lib_es/utils.js
@@ -0,0 +1,27 @@
+/**
+ * Performs a binary search on the given array to find the index of the specified element.
+ *
+ * @param ar - The array to search.
+ * @param el - The element to search for.
+ * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
+ * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
+ */
+export function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+    let m = 0;
+    let n = ar.length - 1;
+    while (m <= n) {
+        const k = (n + m) >> 1;
+        const cmp = compare_fn(el, ar[k]);
+        if (cmp > 0) {
+            m = k + 1;
+        }
+        else if (cmp < 0) {
+            n = k - 1;
+        }
+        else {
+            return k;
+        }
+    }
+    return -m - 1;
+}
+//# sourceMappingURL=utils.js.map
\ No newline at end of file
diff --git a/lib_es/utils.js.map b/lib_es/utils.js.map
new file mode 100644
index 0000000..8312f02
--- /dev/null
+++ b/lib_es/utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,aAA+C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACtB,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,CAAC"}
\ No newline at end of file
diff --git a/package.json b/package.json
index 6a7b64c..b1dc1f5 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
     "node": ">=14.0.0"
   },
   "scripts": {
-    "eslint": "eslint src/ --ext .ts --fix",
+    "eslint": "eslint src/  --fix",
     "build": "pnpm run build-universal && pnpm build-ts-es && pnpm build-ts-cjs",
     "build-universal": "rollup -c config/rollup/dist/umd.mjs && rollup -c config/rollup/dist/es.mjs && copyfiles -f  ./src/i18n/* ./dist/json",
     "build-ts-es": "tsc -d -p tsconfig.json --sourceMap --outDir lib_es --declarationDir types",
diff --git a/src/ayaStringSplitter.ts b/src/ayaStringSplitter.ts
index 6737ec6..d180d9d 100644
--- a/src/ayaStringSplitter.ts
+++ b/src/ayaStringSplitter.ts
@@ -1,4 +1,5 @@
-import { SurahAyahSegment, AyahNo } from "./types"
+import { checkValidSurahAyah } from "./checkValidSurahAyah"
+import { AyahNo, SurahAyahSegment } from "./types"
 
 /**
  *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
@@ -6,14 +7,35 @@ import { SurahAyahSegment, AyahNo } from "./types"
  * @returns {array} array [x,y] or [x,[y1,y2]] respectively
  */
 export function ayaStringSplitter(str: string): SurahAyahSegment {
-  const [surah, ayahs] = str.trim().split(":")
-  if (!ayahs) {
+  const [surahStr, ayahsStr] = str.trim().split(":")
+  const surah = parseInt(surahStr, 10)
+
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str
+  }
+
+  if (!ayahsStr) {
     throw "Error in data " + str
   }
-  return [
-    +surah,
-    ayahs.includes("-")
-      ? (ayahs.split("-").map(Number) as [AyahNo, AyahNo])
-      : +ayahs,
-  ]
+
+  let ayahs: AyahNo | [AyahNo, AyahNo]
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map(a => {
+      const ayah = parseInt(a, 10)
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a
+      }
+      return ayah
+    }) as [AyahNo, AyahNo]
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str
+  } else {
+    ayahs = parseInt(ayahsStr, 10)
+    if (isNaN(ayahs)|| ayahs === 0) {
+      throw "Error in data " + str
+    }
+    checkValidSurahAyah(surah, ayahs)
+  }
+
+
+  return [surah, ayahs]
 }
diff --git a/src/checkValidAyahId.ts b/src/checkValidAyahId.ts
new file mode 100644
index 0000000..b28d7f0
--- /dev/null
+++ b/src/checkValidAyahId.ts
@@ -0,0 +1,14 @@
+import { meta } from "./const";
+import { AyahId } from "./types";
+
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayaId - The Ayah (verse) ID to check.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+export function checkValidAyahId(ayaId: AyahId) {
+  if (ayaId < 1 || ayaId > meta.numAyas)
+    throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
+  return true;
+}
diff --git a/src/checkValidSurah.ts b/src/checkValidSurah.ts
new file mode 100644
index 0000000..bafdbbb
--- /dev/null
+++ b/src/checkValidSurah.ts
@@ -0,0 +1,18 @@
+import { meta } from "./const";
+import { Surah } from "./types";
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+
+export function checkValidSurah(surah: Surah, checkOnly = false) {
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
diff --git a/src/checkValidSurahAyah.ts b/src/checkValidSurahAyah.ts
new file mode 100644
index 0000000..18e3d68
--- /dev/null
+++ b/src/checkValidSurahAyah.ts
@@ -0,0 +1,22 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { getSurahMeta } from "./getSurahMeta";
+import { AyahNo, Surah } from "./types";
+
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+export function checkValidSurahAyah(surah: Surah, ayah: AyahNo, checkOnly = false): boolean {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+
+  const [startAyahId, ayahCount] = getSurahMeta(surah);
+  if (ayah < 1 || ayah > ayahCount) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + ayahCount);
+  }
+  return true;
+}
diff --git a/src/findAyaidBySurah.ts b/src/findAyaidBySurah.ts
new file mode 100644
index 0000000..6b9d97d
--- /dev/null
+++ b/src/findAyaidBySurah.ts
@@ -0,0 +1,15 @@
+import { checkValidSurahAyah } from "./checkValidSurahAyah";
+import { getSurahMeta } from "./getSurahMeta";
+import { AyahId, AyahNo, Surah } from "./types";
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+export function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}
diff --git a/src/findJuz.ts b/src/findJuz.ts
new file mode 100644
index 0000000..fe22b35
--- /dev/null
+++ b/src/findJuz.ts
@@ -0,0 +1,20 @@
+import { checkValidSurahAyah } from "./checkValidSurahAyah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+import { AyahId, AyahNo, Juz, Surah } from "./types";
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+export function findJuz(surah: Surah, ayah: AyahNo = 1, ayahMode = false): Juz {
+  const ayahId: AyahId = ayahMode
+    ? ayah
+    : ((checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah)) as AyahId);
+
+  return findJuzByAyaid(ayahId);
+}
diff --git a/src/findJuzAndShift.ts b/src/findJuzAndShift.ts
new file mode 100644
index 0000000..c6ad388
--- /dev/null
+++ b/src/findJuzAndShift.ts
@@ -0,0 +1,44 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { JuzList } from "./lists/juzList";
+import { SuraList } from "./lists/surahList";
+import { AyahId, AyahNo, Juz, Surah } from "./types";
+
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+export function findJuzAndShift(
+  surah: Surah,
+  ayah: AyahNo,
+  ayahMode = false
+): {
+  juz: Juz;
+  leftAyahId: AyahId;
+  ayahsBetweenJuzSurah: number;
+} {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
diff --git a/src/findJuzByAyaid.ts b/src/findJuzByAyaid.ts
new file mode 100644
index 0000000..fafe389
--- /dev/null
+++ b/src/findJuzByAyaid.ts
@@ -0,0 +1,16 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { JuzList } from "./lists/juzList";
+import { AyahId, Juz } from "./types";
+
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+export function findJuzByAyaid(ayaId: AyahId): Juz {
+  checkValidAyahId(ayaId);
+
+  return JuzList.findIndex(x => x > ayaId) - 1;
+}
diff --git a/src/findJuzHizb.ts b/src/findJuzHizb.ts
new file mode 100644
index 0000000..c5f6333
--- /dev/null
+++ b/src/findJuzHizb.ts
@@ -0,0 +1,24 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
+import { AyahId, AyahNo, JuzHizb, Surah } from "./types";
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+export function findJuzHizb(
+  surah: Surah,
+  ayah: AyahNo = 1,
+  ayahMode = false
+): JuzHizb {
+  const ayahId: AyahId = ayahMode
+    ? ayah
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+
+  return findJuzHizbByAyaid(ayahId);
+}
diff --git a/src/findJuzHizbByAyaid.ts b/src/findJuzHizbByAyaid.ts
new file mode 100644
index 0000000..b8ff84b
--- /dev/null
+++ b/src/findJuzHizbByAyaid.ts
@@ -0,0 +1,20 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+import { HizbQuarterList } from "./lists/hizbList";
+import { AyahId, JuzHizb } from "./types";
+
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+export function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {
+  checkValidAyahId(ayaId);
+
+  const juz = findJuzByAyaid(ayaId);
+
+  const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
+  return { juz, hizb: id % 8 || 8, id };
+}
diff --git a/src/findJuzMetaBySurah.ts b/src/findJuzMetaBySurah.ts
new file mode 100644
index 0000000..2445bce
--- /dev/null
+++ b/src/findJuzMetaBySurah.ts
@@ -0,0 +1,30 @@
+import { meta } from "./const";
+import { findJuzAndShift } from "./findJuzAndShift";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { JuzList } from "./lists/juzList";
+import { AyahNo, Juz, JuzMeta, Surah } from "./types";
+
+/**
+ * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
+ * @param {*} suraNumber
+ * @param {*} ayaNumber
+ * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
+ */
+export function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {
+  const {
+    juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId,
+  } = findJuzAndShift(surah, ayah);
+
+  let rightJuz: Juz = leftjuz;
+  while (rightJuz < meta.numJuzs &&
+    findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
+    rightJuz++;
+
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1],
+  };
+}
diff --git a/src/findPage.ts b/src/findPage.ts
new file mode 100644
index 0000000..b9f0054
--- /dev/null
+++ b/src/findPage.ts
@@ -0,0 +1,22 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { PageList } from "./lists/pageList";
+import { AyahId, AyahNo, Page, Surah } from "./types";
+
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+export function findPage(surah: Surah, ayah: AyahNo, ayahMode = false): Page {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+
+  return PageList.findIndex(x => x > ayahId) - 1;
+}
diff --git a/src/findRangeAroundAyah.ts b/src/findRangeAroundAyah.ts
new file mode 100644
index 0000000..a917a5e
--- /dev/null
+++ b/src/findRangeAroundAyah.ts
@@ -0,0 +1,75 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { meta } from "./const";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findJuzByAyaid } from "./findJuzByAyaid";
+import { findPage } from "./findPage";
+import { JuzList } from "./lists/juzList";
+import { PageList } from "./lists/pageList";
+import { SuraList } from "./lists/surahList";
+import { AyahId, AyahNo, Juz, Page, Surah, SurahAyah } from "./types";
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+// export function pageMetaOld(pageNum: number): any {
+//   if (pageNum < 1 || pageNum > meta.numPages)
+//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
+//   const [curPage, nextPage] = [
+//     findSurahByAyaid(PageList[pageNum]),
+//     findSurahByAyaid(PageList[pageNum + 1]),
+//   ]
+//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
+//     curPage[0],
+//     curPage[1],
+//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
+//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
+//   ]
+//   return {
+//     pageNum,
+//     first: [firstSurah, firstAyah],
+//     last: [lastSurah, lastAyah],
+//   }
+// }
+
+
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+export function findRangeAroundAyah(
+  surah: Surah,
+  ayah: AyahNo,
+  mode: "juz" | "surah" | "ayah" | "page" | "all",
+  ayahMode = false
+): SurahAyah {
+  const ayahId: AyahId = ayahMode
+    ? ayah
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+
+  switch (mode) {
+    case "juz": {
+      const juz: Juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+
+    case "surah": {
+      return [SuraList[surah][0]+1, SuraList[surah+1][0]];
+    }
+
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page: Page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}
diff --git a/src/findSurahByAyaid.ts b/src/findSurahByAyaid.ts
new file mode 100644
index 0000000..3152994
--- /dev/null
+++ b/src/findSurahByAyaid.ts
@@ -0,0 +1,16 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { SuraList } from "./lists/surahList";
+import { AyahId, Surah, SurahAyah } from "./types";
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+export function findSurahByAyaid(ayaId: AyahId): SurahAyah {
+  checkValidAyahId(ayaId);
+
+  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}
diff --git a/src/getAyaCountinSura.ts b/src/getAyaCountinSura.ts
new file mode 100644
index 0000000..137a8c3
--- /dev/null
+++ b/src/getAyaCountinSura.ts
@@ -0,0 +1,11 @@
+import { getSurahMeta } from "./getSurahMeta";
+import { Surah } from "./types";
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+export function getAyaCountinSura(surah: Surah): number {
+  return getSurahMeta(surah)[1];
+}
diff --git a/src/getSurahMeta.ts b/src/getSurahMeta.ts
new file mode 100644
index 0000000..6fc215d
--- /dev/null
+++ b/src/getSurahMeta.ts
@@ -0,0 +1,15 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { SuraList } from "./lists/surahList";
+import { Surah, SurahMeta } from "./types";
+
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+export function getSurahMeta(surah: Surah): SurahMeta {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}
diff --git a/src/index.ts b/src/index.ts
index 43184f3..afb96a7 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,445 +1,51 @@
 // Quran Meta
-import { meta } from "./const"
-import {
-  AyahId,
-  AyahNo,
-  Page,
-  Juz,
-  SurahAyah,
-  PageMeta,
-  JuzMeta,
-  JuzHizb,
-  SurahMeta,
-  Sajda,
-  Surah,
-} from "./types"
 
-export {
-  AyahId,
-  AyahNo,
-  Page,
-  Juz,
-  SurahAyah,
-  PageMeta,
-  JuzMeta,
-  SurahMeta,
-  Sajda,
-  Surah,
-}
+// export {
+//   AyahId,
+//   AyahNo, Juz, JuzMeta, Page, PageMeta, Sajda,
+//   Surah, SurahAyah, SurahMeta
+// }
 //export default QuranMeta;
 //------------------ Sura Data ---------------------
 
 export { suraNames as suraNamesEn } from "./i18n/sura.en"
 export { suraNames as suraNamesRu } from "./i18n/sura.ru"
 
-import { SuraList } from "./surahList"
-
-//------------------ Juz Data ---------------------
-const JuzList: AyahId[] = [
-  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,
-]
-
-//------------------ Hizb Data ---------------------
-import { HizbQuarterList } from "./hizbList"
-
-//------------------ Manzil Data ---------------------
-
-const ManzilList: AyahId[] = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237]
 
 //------------------ Ruku Data ---------------------
 // export Ruku  from "~/js/qdata-ruku.json"
-import { RukuList } from "./rukuList"
-
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-import { PageList } from "./pageList"
+export { RukuList } from "./lists/rukuList"
 
-// export Page from "~/js/qdata-page.json"
-
-//------------------ Sajda Data ---------------------
-
-const SajdaList: Sajda[] = [
-  // [ayaId, type]
-  [1160, "recommended"],
-  [1722, "recommended"],
-  [1951, "recommended"],
-  [2138, "recommended"],
-  [2308, "recommended"],
-  [2613, "recommended"],
-  [2672, "recommended"],
-  [2915, "recommended"],
-  [3185, "recommended"],
-  [3518, "obligatory"],
-  [3994, "recommended"],
-  [4256, "obligatory"],
-  [4846, "obligatory"],
-  [5905, "recommended"],
-  [6125, "obligatory"],
-]
 //export default QuranMeta;
-import { ayaStringSplitter } from "./ayaStringSplitter"
-export {
-  meta,
-  SuraList,
-  JuzList,
-  HizbQuarterList,
-  ManzilList,
-  RukuList,
-  PageList,
-  SajdaList,
-  ayaStringSplitter,
-}
-
-function binarySearch(
-  ar: Array<number>,
-  el: number,
-  compare_fn: (a: number, b: number) => number = (a, b) => a - b
-): number {
-  let m = 0
-  let n = ar.length - 1
-  while (m <= n) {
-    const k = (n + m) >> 1
-    const cmp = compare_fn(el, ar[k])
-    if (cmp > 0) {
-      m = k + 1
-    } else if (cmp < 0) {
-      n = k - 1
-    } else {
-      return k
-    }
-  }
-  return -m - 1
-}
-
-function checkValidAyahId(ayaId: AyahId) {
-  if (ayaId < 1 || ayaId > meta.numAyas)
-    throw new RangeError("ayaid must be between 1 and " + meta.numAyas)
-  return true
-}
-
-function checkValidSurah(surah: Surah, checkOnly = false) {
-  if (surah < 1 || surah > meta.numSuras) {
-    if (checkOnly) return false
-    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
-  }
-  return true
-}
-
-/**
- *
- * @param {*} ayaId
- */
-export function findSurahByAyaid(ayaId: AyahId): SurahAyah {
-  checkValidAyahId(ayaId)
-
-  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1
-  return suraNum < 0
-    ? [114, ayaId - SuraList[114][0]]
-    : [suraNum, ayaId - SuraList[suraNum][0]]
-}
-
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzByAyaid(ayaId: AyahId): Juz {
-  checkValidAyahId(ayaId)
-
-  return JuzList.findIndex(x => x > ayaId) - 1
-}
-/**
- *
- * @param {*} ayaId
- */
-export function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {
-  checkValidAyahId(ayaId)
-
-  const juz = findJuzByAyaid(ayaId)
-
-  const id = HizbQuarterList.findIndex(x => x > ayaId) - 1
-  return { juz, hizb: id % 8 || 8, id }
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuz(surah: Surah, ayah: AyahNo = 1, ayahMode = false): Juz {
-  const ayahId: AyahId = ayahMode
-    ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return findJuzByAyaid(ayahId)
-}
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function findJuzHizb(
-  surah: Surah,
-  ayah: AyahNo = 1,
-  ayahMode = false
-): JuzHizb {
-  const ayahId: AyahId = ayahMode
-    ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return findJuzHizbByAyaid(ayahId)
-}
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahJuzFirst(
-  surah: Surah,
-  ayah: AyahNo,
-  ayahMode = false
-): Juz {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return binarySearch(JuzList, ayahId)
-  // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export function isAyahPageFirst(
-  surah: Surah,
-  ayah: AyahNo,
-  ayahMode = false
-): Juz {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return binarySearch(PageList, ayahId)
-  // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-export function findJuzAndShift(
-  surah: Surah,
-  ayah: AyahNo,
-  ayahMode = false
-): {
-  juz: Juz
-  leftAyahId: AyahId
-  ayahsBetweenJuzSurah: number
-} {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  const juz = findJuzByAyaid(ayahId)
-  const leftAyahId = JuzList[juz]
-  if (surah < 0) [surah] = findSurahByAyaid(leftAyahId)
-  const [surahStartAyahId] = SuraList[surah]
-  return {
-    juz,
-    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-    leftAyahId,
-  }
-}
-
-//todo explain function
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {
-  const {
-    juz: leftjuz,
-    ayahsBetweenJuzSurah,
-    leftAyahId,
-  } = findJuzAndShift(surah, ayah)
-
-  let rightJuz: Juz = leftjuz
-  while (
-    rightJuz < meta.numJuzs &&
-    findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah
-  )
-    rightJuz++
-
-  return {
-    leftjuz,
-    ayahsBetweenJuzSurah,
-    rightJuz,
-    leftAyahId,
-    rightAyahId: JuzList[rightJuz + 1],
-  }
-}
-
-/**
- * Get Surah meta
- * @param surah
- */
-export function getSurahMeta(surah: Surah): SurahMeta {
-  checkValidSurah(surah)
-  return SuraList[surah]
-}
-
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-export function findPage(surah: Surah, ayah: AyahNo, ayahMode = false): Page {
-  const ayahId: AyahId = ayahMode
-    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
-
-  return PageList.findIndex(x => x > ayahId) - 1
-}
-
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-export function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId {
-  const [startAyahId] = getSurahMeta(surah)
-  return startAyahId + ayah
-}
-
-/**
- *
- * @param {*} surah
- */
-export function getAyaCountinSura(surah: Surah): number {
-  return getSurahMeta(surah)[1]
-}
-
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah {
-  if (surah < 1 || surah > meta.numSuras)
-    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
-
-  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
-  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1)
-}
-
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah {
-  checkValidSurah(surah)
-
-  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
-  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1)
-}
-
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-export function pageMeta(pageNum: Page): PageMeta {
-  // todo rename to getPageMeta in next major version
-  if (pageNum < 1 || pageNum > meta.numPages)
-    throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-
-  const [curPage, nextPage]: [AyahId, AyahId] = [
-    PageList[pageNum],
-    PageList[pageNum + 1],
-  ]
-
-  return {
-    pageNum,
-    first: findSurahByAyaid(curPage),
-    last: [...findSurahByAyaid(nextPage - 1)],
-  }
-}
-
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-export function findRangeAroundAyah(
-  surah: Surah,
-  ayah: AyahNo,
-  mode: "juz" | "surah" | "ayah" | "page" | "all",
-  ayahMode = false
-): SurahAyah {
-  const ayahId: AyahId = ayahMode
-    ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
+export { ayaStringSplitter } from "./ayaStringSplitter"
+export { checkValidAyahId } from "./checkValidAyahId"
+export { checkValidSurah } from "./checkValidSurah"
+export { checkValidSurahAyah } from "./checkValidSurahAyah"
+export { meta } from "./const"
+export { findAyaidBySurah } from "./findAyaidBySurah"
+export { findJuz } from "./findJuz"
+export { findJuzAndShift } from "./findJuzAndShift"
+export { findJuzByAyaid } from "./findJuzByAyaid"
+export { findJuzHizb } from "./findJuzHizb"
+export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid"
+export { findJuzMetaBySurah } from "./findJuzMetaBySurah"
+export { findPage } from "./findPage"
+export { findRangeAroundAyah } from "./findRangeAroundAyah"
+export { findSurahByAyaid } from "./findSurahByAyaid"
+export { getAyaCountinSura } from "./getAyaCountinSura"
+export { getSurahMeta } from "./getSurahMeta"
+export { isAyahJuzFirst } from "./isAyahJuzFirst"
+export { isAyahPageFirst } from "./isAyahPageFirst"
+export { HizbQuarterList } from "./lists/hizbList"
+export { JuzList } from "./lists/juzList"
+export { ManzilList } from "./lists/manzilList"
+export { PageList } from "./lists/pageList"
+export { SajdaList } from "./lists/sajdaList"
+export { SuraList } from "./lists/surahList"
+export { nextAyah } from "./nextAyah"
+export { pageMeta } from "./pageMeta"
+export { prevAyah } from "./prevAyah"
 
-  switch (mode) {
-    case "juz": {
-      const juz: Juz = findJuzByAyaid(ayahId)
-      return [JuzList[juz], JuzList[juz + 1] - 1]
-    }
 
-    case "surah": {
-      return [findAyaidBySurah(surah, 1), findAyaidBySurah(surah + 1, 1) - 1]
-    }
 
-    case "ayah": {
-      return [ayahId, ayahId]
-    }
-    case "page": {
-      const page: Page = findPage(-1, ayahId, true)
-      return [PageList[page], PageList[page + 1] - 1]
-    }
 
-    case "all":
-    default:
-      return [1, meta.numAyas]
-  }
-}
diff --git a/src/isAyahJuzFirst.ts b/src/isAyahJuzFirst.ts
new file mode 100644
index 0000000..a12035d
--- /dev/null
+++ b/src/isAyahJuzFirst.ts
@@ -0,0 +1,28 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { JuzList } from "./lists/juzList";
+import { AyahId, AyahNo, Juz, Surah } from "./types";
+import { binarySearch } from "./utils";
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+export function isAyahJuzFirst(
+  surah: Surah,
+  ayah: AyahNo,
+  ayahMode = false
+): Juz {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+
+  return binarySearch(JuzList, ayahId);
+  // return JuzList.findIndex((x: AyahId) => x == ayahId)
+}
diff --git a/src/isAyahPageFirst.ts b/src/isAyahPageFirst.ts
new file mode 100644
index 0000000..dc895ab
--- /dev/null
+++ b/src/isAyahPageFirst.ts
@@ -0,0 +1,28 @@
+import { checkValidAyahId } from "./checkValidAyahId";
+import { checkValidSurah } from "./checkValidSurah";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { PageList } from "./lists/pageList";
+import { AyahId, AyahNo, Juz, Surah } from "./types";
+import { binarySearch } from "./utils";
+
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+export function isAyahPageFirst(
+  surah: Surah,
+  ayah: AyahNo,
+  ayahMode = false
+): Juz {
+  const ayahId: AyahId = ayahMode
+    ? ((checkValidAyahId(ayah) && ayah) as AyahId)
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+
+  return binarySearch(PageList, ayahId);
+  // return PageList.findIndex((x: AyahId) => x == ayahId)
+}
diff --git a/src/hizbList.ts b/src/lists/hizbList.ts
similarity index 94%
rename from src/hizbList.ts
rename to src/lists/hizbList.ts
index 531e695..9b0939b 100644
--- a/src/hizbList.ts
+++ b/src/lists/hizbList.ts
@@ -1,5 +1,6 @@
-import { AyahId } from "./types"
+import { AyahId } from "../types"
 
+//------------------ Hizb Data ---------------------
 export const HizbQuarterList: AyahId[] = [
   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,
diff --git a/src/lists/juzList.ts b/src/lists/juzList.ts
new file mode 100644
index 0000000..d98c861
--- /dev/null
+++ b/src/lists/juzList.ts
@@ -0,0 +1,8 @@
+import { AyahId } from "../types";
+
+//------------------ Juz Data ---------------------
+export const JuzList: AyahId[] = [
+  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,
+];
diff --git a/src/lists/manzilList.ts b/src/lists/manzilList.ts
new file mode 100644
index 0000000..fa10a35
--- /dev/null
+++ b/src/lists/manzilList.ts
@@ -0,0 +1,4 @@
+import { AyahId } from "../types";
+
+//------------------ Manzil Data ---------------------
+export const ManzilList: AyahId[] = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
diff --git a/src/pageList.ts b/src/lists/pageList.ts
similarity index 99%
rename from src/pageList.ts
rename to src/lists/pageList.ts
index fbc75c9..1e4fe14 100644
--- a/src/pageList.ts
+++ b/src/lists/pageList.ts
@@ -1,4 +1,4 @@
-import { AyahId } from "./types"
+import { AyahId } from "../types"
 
 export const PageList: AyahId[] = [
   0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,
diff --git a/src/rukuList.ts b/src/lists/rukuList.ts
similarity index 98%
rename from src/rukuList.ts
rename to src/lists/rukuList.ts
index da5441b..b8279e9 100644
--- a/src/rukuList.ts
+++ b/src/lists/rukuList.ts
@@ -1,4 +1,4 @@
-import { AyahId } from "./types"
+import { AyahId } from "../types"
 
 export const RukuList: AyahId[] = [
   0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,
diff --git a/src/lists/sajdaList.ts b/src/lists/sajdaList.ts
new file mode 100644
index 0000000..1bacdad
--- /dev/null
+++ b/src/lists/sajdaList.ts
@@ -0,0 +1,30 @@
+import { Sajda } from "../types";
+
+//------------------ Page Data ---------------------
+// code to get starting pages for surahs
+// let res=[];
+// Page.reduce((s,c,p)=>{
+// 	while (c[0]>=s)
+// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
+// 	return s
+// },0)
+// export Page from "~/js/qdata-page.json"
+//------------------ Sajda Data ---------------------
+export const SajdaList: Sajda[] = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"],
+];
diff --git a/src/surahList.ts b/src/lists/surahList.ts
similarity index 99%
rename from src/surahList.ts
rename to src/lists/surahList.ts
index 2fda87c..32fb1a2 100644
--- a/src/surahList.ts
+++ b/src/lists/surahList.ts
@@ -1,4 +1,4 @@
-import { SurahMeta } from "./types"
+import { SurahMeta } from "../types"
 
 export const SuraList: SurahMeta[] = [
   [-1, -1, -1, -1, "", false, -1],
diff --git a/src/nextAyah.ts b/src/nextAyah.ts
new file mode 100644
index 0000000..021ca1a
--- /dev/null
+++ b/src/nextAyah.ts
@@ -0,0 +1,18 @@
+import { meta } from "./const";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { AyahId, AyahNo, Surah, SurahAyah } from "./types";
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+export function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+
+  const ayaid: AyahId = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
diff --git a/src/pageMeta.ts b/src/pageMeta.ts
new file mode 100644
index 0000000..f6318b3
--- /dev/null
+++ b/src/pageMeta.ts
@@ -0,0 +1,29 @@
+import { meta } from "./const";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { PageList } from "./lists/pageList";
+import { AyahId, Page, PageMeta } from "./types";
+
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+export function pageMeta(pageNum: Page): PageMeta {
+  // todo rename to getPageMeta in next major version
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+
+  const [curPage, nextPage]: [AyahId, AyahId] = [
+    PageList[pageNum],
+    PageList[pageNum + 1],
+  ];
+
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)],
+  };
+}
diff --git a/src/prevAyah.ts b/src/prevAyah.ts
new file mode 100644
index 0000000..2c39975
--- /dev/null
+++ b/src/prevAyah.ts
@@ -0,0 +1,18 @@
+import { checkValidSurah } from "./checkValidSurah";
+import { meta } from "./const";
+import { findAyaidBySurah } from "./findAyaidBySurah";
+import { findSurahByAyaid } from "./findSurahByAyaid";
+import { AyahId, AyahNo, Surah, SurahAyah } from "./types";
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+export function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah {
+  checkValidSurah(surah);
+
+  const ayaid: AyahId = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
diff --git a/src/utils.ts b/src/utils.ts
new file mode 100644
index 0000000..22f14c1
--- /dev/null
+++ b/src/utils.ts
@@ -0,0 +1,28 @@
+/**
+ * Performs a binary search on the given array to find the index of the specified element.
+ *
+ * @param ar - The array to search.
+ * @param el - The element to search for.
+ * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
+ * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
+ */
+export function binarySearch(
+    ar: Array<number>,
+    el: number,
+    compare_fn: (a: number, b: number) => number = (a, b) => a - b
+  ): number {
+    let m = 0
+    let n = ar.length - 1
+    while (m <= n) {
+      const k = (n + m) >> 1
+      const cmp = compare_fn(el, ar[k])
+      if (cmp > 0) {
+        m = k + 1
+      } else if (cmp < 0) {
+        n = k - 1
+      } else {
+        return k
+      }
+    }
+    return -m - 1
+  }
\ No newline at end of file
diff --git a/tests/ayaStringSplitter.spec.ts b/tests/ayaStringSplitter.spec.ts
new file mode 100644
index 0000000..2774a62
--- /dev/null
+++ b/tests/ayaStringSplitter.spec.ts
@@ -0,0 +1,55 @@
+import { ayaStringSplitter } from "../src/ayaStringSplitter";
+
+describe("ayaStringSplitter", () => {
+    it("basic tests", () => {
+        expect(ayaStringSplitter("1:1")).toEqual([1, 1])
+        expect(ayaStringSplitter("1:1-5")).toEqual([1, [1, 5]])
+        expect(ayaStringSplitter("114:1")).toEqual([114, 1])
+        // expect(ayaStringSplitter("115:1")).toEqual([115,1])
+    })
+
+    it("error checks", () => {
+        expect(() => ayaStringSplitter("1")).toThrow()
+        expect(() => ayaStringSplitter("")).toThrow()
+        expect(() => ayaStringSplitter("sdsgw")).toThrow()
+        expect(() => ayaStringSplitter("sd:sgw")).toThrow()
+        expect(() => ayaStringSplitter("34:sgw")).toThrow()
+    })
+
+    it("handles single-digit sura and aya numbers", () => {
+        expect(ayaStringSplitter("2:3")).toEqual([2, 3]);
+        expect(ayaStringSplitter("9:5")).toEqual([9, 5]);
+    });
+
+    it("handles multi-digit sura and aya numbers", () => {
+        expect(ayaStringSplitter("110:3")).toEqual([110, 3]);
+        expect(ayaStringSplitter("2:255")).toEqual([2, 255]);
+    });
+
+    it("handles aya ranges with multi-digit numbers", () => {
+        expect(ayaStringSplitter("7:26-30")).toEqual([7, [26, 30]]);
+        expect(ayaStringSplitter("18:1-10")).toEqual([18, [1, 10]]);
+    });
+
+    it("throws error for invalid sura numbers", () => {
+        expect(() => ayaStringSplitter("0:1")).toThrow();
+        expect(() => ayaStringSplitter("115:1")).toThrow();
+    });
+
+    it("throws error for invalid aya numbers", () => {
+        expect(() => ayaStringSplitter("1:0")).toThrow();
+        expect(() => ayaStringSplitter("1:300")).toThrow();
+    });
+
+    it("throws error for invalid range format", () => {
+        expect(() => ayaStringSplitter("1:5-3")).toThrow();
+        expect(() => ayaStringSplitter("1:5-")).toThrow();
+        expect(() => ayaStringSplitter("1:-5")).toThrow();
+    });
+
+    it("throws error for non-numeric input", () => {
+        expect(() => ayaStringSplitter("1:a")).toThrow();
+        expect(() => ayaStringSplitter("a:1")).toThrow();
+        expect(() => ayaStringSplitter("1:1-a")).toThrow();
+    });
+});
diff --git a/tests/checkValidAyahId.spec.ts b/tests/checkValidAyahId.spec.ts
new file mode 100644
index 0000000..d36517e
--- /dev/null
+++ b/tests/checkValidAyahId.spec.ts
@@ -0,0 +1,30 @@
+import { checkValidAyahId, meta } from "../src";
+
+describe("checkValidAyahId", () => {
+  it("should return true for valid ayah id", () => {
+    expect(checkValidAyahId(1)).toBe(true);
+    expect(checkValidAyahId(meta.numAyas)).toBe(true);
+    expect(checkValidAyahId(Math.floor(meta.numAyas / 2))).toBe(true);
+  });
+
+  it("should throw RangeError for ayah id less than 1", () => {
+    expect(() => checkValidAyahId(0)).toThrow(RangeError);
+    expect(() => checkValidAyahId(-1)).toThrow(RangeError);
+  });
+
+  it("should throw RangeError for ayah id greater than total number of ayas", () => {
+    expect(() => checkValidAyahId(meta.numAyas + 1)).toThrow(RangeError);
+    expect(() => checkValidAyahId(Number.MAX_SAFE_INTEGER)).toThrow(RangeError);
+  });
+
+//   it("should throw RangeError for non-integer ayah id", () => {
+//     expect(() => checkValidAyahId(1.5)).toThrow(RangeError);
+//     expect(() => checkValidAyahId(2.99)).toThrow(RangeError);
+//   });
+
+//   it("should throw TypeError for non-number ayah id", () => {
+//     expect(() => checkValidAyahId("1" as any)).toThrow(TypeError);
+//     expect(() => checkValidAyahId(null as any)).toThrow(TypeError);
+//     expect(() => checkValidAyahId(undefined as any)).toThrow(TypeError);
+//   });
+});
diff --git a/tests/checkValidSurah.spec.ts b/tests/checkValidSurah.spec.ts
new file mode 100644
index 0000000..61c6675
--- /dev/null
+++ b/tests/checkValidSurah.spec.ts
@@ -0,0 +1,29 @@
+import { checkValidSurah, meta } from "../src";
+
+describe("checkValidSurah", () => {
+  it("should return true for valid surah numbers", () => {
+    expect(checkValidSurah(1)).toBe(true);
+    expect(checkValidSurah(meta.numSuras)).toBe(true);
+    expect(checkValidSurah(Math.floor(meta.numSuras / 2))).toBe(true);
+  });
+
+  it("should throw RangeError for surah number less than 1", () => {
+    expect(() => checkValidSurah(0)).toThrow(RangeError);
+    expect(() => checkValidSurah(-1)).toThrow(RangeError);
+  });
+
+  it("should throw RangeError for surah number greater than total number of surahs", () => {
+    expect(() => checkValidSurah(meta.numSuras + 1)).toThrow(RangeError);
+    expect(() => checkValidSurah(Number.MAX_SAFE_INTEGER)).toThrow(RangeError);
+  });
+
+  it("should return false for invalid surah numbers when checkOnly is true", () => {
+    expect(checkValidSurah(0, true)).toBe(false);
+    expect(checkValidSurah(meta.numSuras + 1, true)).toBe(false);
+  });
+
+  it("should return true for valid surah numbers when checkOnly is true", () => {
+    expect(checkValidSurah(1, true)).toBe(true);
+    expect(checkValidSurah(meta.numSuras, true)).toBe(true);
+  });
+});
diff --git a/tests/checkValidSurahAyah.spec.ts b/tests/checkValidSurahAyah.spec.ts
new file mode 100644
index 0000000..1fec410
--- /dev/null
+++ b/tests/checkValidSurahAyah.spec.ts
@@ -0,0 +1,34 @@
+import { checkValidSurahAyah } from "../src";
+
+describe("checkValidSurahAyah", () => {
+  it("should return true for valid surah and ayah", () => {
+    expect(checkValidSurahAyah(1, 1)).toBe(true);
+    expect(checkValidSurahAyah(114, 6)).toBe(true);
+  });
+
+  it("should return false for invalid surah", () => {
+    expect(checkValidSurahAyah(0, 1, true)).toBe(false);
+    expect(checkValidSurahAyah(115, 1, true)).toBe(false);
+  });
+
+  it("should return false for invalid ayah when checkOnly is true", () => {
+    expect(checkValidSurahAyah(1, 0, true)).toBe(false);
+    expect(checkValidSurahAyah(1, 8, true)).toBe(false);
+  });
+
+  it("should throw RangeError for invalid ayah when checkOnly is false", () => {
+    expect(() => checkValidSurahAyah(1, 0)).toThrow(RangeError);
+    expect(() => checkValidSurahAyah(1, 8)).toThrow(RangeError);
+  });
+
+  it("should throw RangeError with correct message for invalid ayah", () => {
+    expect(() => checkValidSurahAyah(1, 8)).toThrow("Ayah must be between 1 and 7");
+    expect(() => checkValidSurahAyah(2, 287)).toThrow("Ayah must be between 1 and 286");
+  });
+
+  it("should handle edge cases", () => {
+    expect(checkValidSurahAyah(1, 7)).toBe(true);
+    expect(checkValidSurahAyah(2, 286)).toBe(true);
+    expect(checkValidSurahAyah(114, 1)).toBe(true);
+  });
+});
diff --git a/tests/findAyaidBySurah.spec.ts b/tests/findAyaidBySurah.spec.ts
new file mode 100644
index 0000000..f4fbda7
--- /dev/null
+++ b/tests/findAyaidBySurah.spec.ts
@@ -0,0 +1,45 @@
+import { findAyaidBySurah, meta } from "../src";
+
+describe("findAyaidBySurah", () => {
+
+
+    it("should return correct AyahId for first ayah of first surah", () => {
+        expect(findAyaidBySurah(1, 1)).toEqual(1);
+    });
+
+    it("should return correct AyahId for last ayah of first surah", () => {
+        expect(findAyaidBySurah(1, 7)).toEqual(7);
+    });
+
+    it("should return correct AyahId for first ayah of second surah", () => {
+        expect(findAyaidBySurah(2, 1)).toEqual(8);
+    });
+
+    it("should return correct AyahId for middle of a surah", () => {
+        expect(findAyaidBySurah(3, 60)).toEqual(353);
+    });
+
+    it("should return correct AyahId for last surah", () => {
+        expect(findAyaidBySurah(114, 1)).toEqual(6231);
+    });
+
+    it("should return correct AyahId for last ayah of last surah", () => {
+        expect(findAyaidBySurah(114, 6)).toEqual(6236);
+    });
+
+    it("should handle edge cases", () => {
+        expect(findAyaidBySurah(1, 2)).toEqual(2)
+        expect(findAyaidBySurah(114, 6)).toEqual(meta.numAyas)
+        expect(findAyaidBySurah(9, 51)).toEqual(1286);
+        expect(findAyaidBySurah(9, 1)).toEqual(1236);
+        expect(findAyaidBySurah(10, 50)).toEqual(1414);
+    });
+
+    it("should throw error for invalid surah", () => {
+        expect(() => findAyaidBySurah(115, 1)).toThrow();
+    });
+
+    it("should throw error for invalid ayah", () => {
+        expect(() => findAyaidBySurah(1, 8)).toThrow();
+    });
+});
diff --git a/tests/findJuz.spec.ts b/tests/findJuz.spec.ts
new file mode 100644
index 0000000..a87f271
--- /dev/null
+++ b/tests/findJuz.spec.ts
@@ -0,0 +1,47 @@
+import { findJuz } from "../src";
+
+describe("findJuz", () => {
+
+    it("basic", () => {
+        expect(findJuz(1, 2)).toEqual(1)
+        expect(findJuz(2, 1)).toEqual(1)
+        expect(findJuz(3, 1)).toEqual(3)
+    })
+
+    it("should return correct juz for first ayah of first surah", () => {
+        expect(findJuz(1, 1)).toEqual(1);
+    });
+
+    it("should return correct juz for first ayah of first surah", () => {
+        expect(findJuz(0, 1, true)).toEqual(1);
+        expect(findJuz(0, 6236, true)).toEqual(30);
+    });
+    it("should return correct juz for last surah", () => {
+        expect(findJuz(114, 1)).toEqual(30);
+    });
+
+    it("should return correct juz for middle of Quran", () => {
+        expect(findJuz(18, 1)).toEqual(15);
+    });
+
+    it("should return correct juz when ayah is not specified", () => {
+        expect(findJuz(2)).toEqual(1);
+    });
+
+    it("should handle juz change within a surah", () => {
+        expect(findJuz(2, 141)).toEqual(1);
+        expect(findJuz(2, 142)).toEqual(2);
+    });
+
+    it("should return correct juz for last ayah of Quran", () => {
+        expect(findJuz(114, 6)).toEqual(30);
+    });
+
+    it("should handle invalid surah numbers", () => {
+        expect(() => findJuz(115, 1)).toThrow();
+    });
+
+    it("should handle invalid ayah numbers", () => {
+        expect(() => findJuz(1, 8)).toThrow();
+    });
+});
diff --git a/tests/findJuzAndShift.spec.ts b/tests/findJuzAndShift.spec.ts
new file mode 100644
index 0000000..8b966bc
--- /dev/null
+++ b/tests/findJuzAndShift.spec.ts
@@ -0,0 +1,112 @@
+import { meta } from "../src";
+import { findJuzAndShift } from "../src/findJuzAndShift";
+
+describe("findJuzAndShift", () => {
+
+    it("basic", () => {
+        expect(findJuzAndShift(1, 1)).toEqual({
+            juz: 1,
+            leftAyahId: 1,
+            ayahsBetweenJuzSurah: 0,
+        })
+        expect(findJuzAndShift(1, 1, true)).toEqual({
+            juz: 1,
+            leftAyahId: 1,
+            ayahsBetweenJuzSurah: 0,
+        })
+
+        expect(findJuzAndShift(1, 2)).toEqual({
+            juz: 1,
+            leftAyahId: 1,
+            ayahsBetweenJuzSurah: 0,
+        })
+
+        expect(findJuzAndShift(2, 141)).toEqual({
+            juz: 1,
+            leftAyahId: 1,
+            ayahsBetweenJuzSurah: 7,
+        })
+
+        expect(findJuzAndShift(2, 142)).toEqual({
+            juz: 2,
+            leftAyahId: 149,
+            ayahsBetweenJuzSurah: -141,
+        })
+        expect(findJuzAndShift(2, 143)).toEqual({
+            juz: 2,
+            leftAyahId: 149,
+            ayahsBetweenJuzSurah: -141,
+        })
+        expect(findJuzAndShift(2, 150)).toEqual({
+            juz: 2,
+            leftAyahId: 149,
+            ayahsBetweenJuzSurah: -141,
+        })
+
+        expect(findJuzAndShift(2, 252)).toEqual({
+            juz: 2,
+            leftAyahId: 149,
+            ayahsBetweenJuzSurah: -141,
+        })
+
+        expect(findJuzAndShift(2, 253)).toEqual({
+            juz: 3,
+            leftAyahId: 260,
+            ayahsBetweenJuzSurah: -252,
+        })
+
+        expect(findJuzAndShift(3, 1)).toEqual({
+            juz: 3,
+            leftAyahId: 260,
+            ayahsBetweenJuzSurah: 34,
+        })
+    })
+
+    it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in surah mode", () => {
+        const result = findJuzAndShift(2, 1);
+        expect(result).toEqual({
+            juz: 1,
+            leftAyahId: 1,
+            ayahsBetweenJuzSurah: 7,
+        });
+    });
+
+    it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in ayah mode", () => {
+
+        expect(findJuzAndShift(0, 8, true)).toEqual({
+            juz: 1,
+            leftAyahId: 1,
+            ayahsBetweenJuzSurah: 7,
+        });
+
+        expect(findJuzAndShift(0, 10, true)).toEqual({
+            juz: 1,
+            leftAyahId: 1,
+            ayahsBetweenJuzSurah: 7,
+        });
+    });
+
+    it("should handle edge case at the end of a juz", () => {
+        const result = findJuzAndShift(2, 141);
+        expect(result.juz).toBe(1);
+    });
+
+    it("should handle edge case at the start of a juz", () => {
+        const result = findJuzAndShift(2, 142);
+        expect(result.juz).toBe(2);
+    });
+
+    it("should throw RangeError for invalid surah in surah mode", () => {
+        expect(() => findJuzAndShift(115, 1)).toThrow(RangeError);
+    });
+
+    it("should throw RangeError for invalid ayah in ayah mode", () => {
+        expect(() => findJuzAndShift(0, meta.numAyas + 1, true)).toThrow(RangeError);
+    });
+
+    it("should ignore surah number if yahmmode is true", () => {
+        const result = findJuzAndShift(-1, 1, true);
+        expect(result.juz).toBeGreaterThan(0);
+        expect(result.juz).toBeLessThanOrEqual(30);
+    });
+});
diff --git a/tests/findJuzByAyaid.spec.ts b/tests/findJuzByAyaid.spec.ts
new file mode 100644
index 0000000..ce587d8
--- /dev/null
+++ b/tests/findJuzByAyaid.spec.ts
@@ -0,0 +1,36 @@
+import { findJuzByAyaid } from "../src";
+
+describe("findJuzByAyaid", () => {
+    it("basic", () => {
+        expect(findJuzByAyaid(2)).toEqual(1)
+        expect(findJuzByAyaid(100)).toEqual(1)
+        expect(findJuzByAyaid(200)).toEqual(2)
+      })
+
+  it("should return correct Juz for first ayah", () => {
+    expect(findJuzByAyaid(1)).toBe(1);
+  });
+
+  it("should return correct Juz for last ayah", () => {
+    expect(findJuzByAyaid(6236)).toBe(30);
+  });
+
+  it("should return correct Juz for ayah at Juz boundary", () => {
+    expect(findJuzByAyaid(148)).toBe(1);
+    expect(findJuzByAyaid(149)).toBe(2);
+  });
+
+  it("should return correct Juz for middle ayah", () => {
+    expect(findJuzByAyaid(3000)).toBe(19);
+  });
+
+  it("should throw error for invalid ayah id", () => {
+    expect(() => findJuzByAyaid(0)).toThrow();
+    expect(() => findJuzByAyaid(6237)).toThrow();
+  });
+
+  it("should handle edge cases", () => {
+    expect(findJuzByAyaid(2)).toBe(1);
+    expect(findJuzByAyaid(6235)).toBe(30);
+  });
+});
diff --git a/tests/findJuzHizb.spec.ts b/tests/findJuzHizb.spec.ts
new file mode 100644
index 0000000..d16fd16
--- /dev/null
+++ b/tests/findJuzHizb.spec.ts
@@ -0,0 +1,29 @@
+import { findJuzHizb } from "../src";
+
+describe("findJuzHizb", () => {
+    it("should return correct JuzHizb for first surah and ayah", () => {
+        expect(findJuzHizb(1, 1)).toEqual({ juz: 1, hizb: 1, id: 1 });
+    });
+
+    it("should return correct JuzHizb for last surah and ayah", () => {
+        expect(findJuzHizb(114, 6)).toEqual({ juz: 30, hizb: 8, id: 240  });
+    });
+
+    it("should return correct JuzHizb for a middle surah and ayah", () => {
+        expect(findJuzHizb(18, 1)).toEqual({ juz: 15, hizb: 5, id: 117  });
+    });
+
+    it("should handle ayahMode correctly", () => {
+        expect(findJuzHizb(2, 286, true)).toEqual({ juz: 3, hizb: 3 , id: 19 });
+    });
+
+    it("should throw an error for invalid surah number", () => {
+        expect(() => findJuzHizb(0)).toThrow();
+        expect(() => findJuzHizb(115)).toThrow();
+    });
+
+    it("should handle edge cases", () => {
+        expect(findJuzHizb(2, 1)).toEqual({ juz: 1, hizb: 1 , id: 1 });
+        expect(findJuzHizb(2, 142)).toEqual({ juz: 2, hizb: 1, id: 9  });
+    });
+});
diff --git a/tests/findJuzHizbByAyaid.spec.ts b/tests/findJuzHizbByAyaid.spec.ts
new file mode 100644
index 0000000..0e8c68c
--- /dev/null
+++ b/tests/findJuzHizbByAyaid.spec.ts
@@ -0,0 +1,50 @@
+import { expect, vi } from 'vitest';
+import { findJuzHizbByAyaid, meta } from '../src';
+import * as module from "../src/checkValidAyahId";
+
+describe("findJuzHizbByAyaid", () => {
+    beforeEach(() => {
+        vi.clearAllMocks();
+    });
+
+    it("basic", () => {
+        expect(findJuzHizbByAyaid(1)).toEqual({ hizb: 1, id: 1, juz: 1 })
+        expect(findJuzHizbByAyaid(32)).toEqual({ hizb: 1, id: 1, juz: 1 })
+        expect(findJuzHizbByAyaid(33)).toEqual({ hizb: 2, id: 2, juz: 1 })
+        expect(findJuzHizbByAyaid(148)).toEqual({ hizb: 8, id: 8, juz: 1 })
+        expect(findJuzHizbByAyaid(149)).toEqual({ hizb: 1, id: 9, juz: 2 })
+        expect(findJuzHizbByAyaid(meta.numAyas)).toEqual({
+            hizb: 8,
+            id: 240,
+            juz: 30,
+        })
+    })
+
+    it("should return correct JuzHizb for first ayah", () => {
+        const result = findJuzHizbByAyaid(1);
+        expect(result).toEqual({ juz: 1, hizb: 1, id: 1 });
+    });
+
+    it("should return correct JuzHizb for last ayah", () => {
+        const result = findJuzHizbByAyaid(6236);
+        expect(result).toEqual({ juz: 30, hizb: 8, id: 240 });
+    });
+
+    it("should return correct JuzHizb for middle ayah", () => {
+        const result = findJuzHizbByAyaid(3000);
+        expect(result).toEqual({ juz: 19, hizb: 4, id: 148 });
+    });
+
+    it("should call checkValidAyahId with correct argument", () => {
+        const spy = vi.spyOn(module, "checkValidAyahId");
+
+        findJuzHizbByAyaid(100);
+        expect(spy).toHaveBeenCalledWith(100);
+    });
+
+    it("should handle edge case when ayaId is at hizb boundary", () => {
+
+        const result = findJuzHizbByAyaid(148);
+        expect(result).toEqual({ juz: 1, hizb: 8, id: 8 });
+    });
+});
diff --git a/tests/findJuzMetaBySurah.spec.ts b/tests/findJuzMetaBySurah.spec.ts
new file mode 100644
index 0000000..fd16f9f
--- /dev/null
+++ b/tests/findJuzMetaBySurah.spec.ts
@@ -0,0 +1,72 @@
+import { expect, vi } from 'vitest';
+import { findJuzMetaBySurah } from '../src/findJuzMetaBySurah';
+import * as findSurahByAyaidModule from '../src/findSurahByAyaid';
+
+describe('findJuzMetaBySurah', () => {
+  beforeEach(() => {
+    vi.clearAllMocks();
+  });
+
+  it('should return correct JuzMeta for first surah', () => {
+    const result = findJuzMetaBySurah(1);
+    expect(result).toEqual({
+      leftjuz: 1,
+      ayahsBetweenJuzSurah: 0,
+      rightJuz: 1,
+      leftAyahId: 1,
+      rightAyahId: 149,
+    });
+  });
+
+  it('should return correct JuzMeta for a surah spanning multiple juz', () => {
+    const result = findJuzMetaBySurah(2);
+    expect(result).toEqual({
+      leftjuz: 1,
+      ayahsBetweenJuzSurah: 7,
+      rightJuz: 3,
+      leftAyahId: 1,
+      rightAyahId: 386,
+    });
+  });
+
+  it('should handle a surah entirely within one juz', () => {
+    const result = findJuzMetaBySurah(114);
+    expect(result).toEqual({
+      leftjuz: 30,
+      ayahsBetweenJuzSurah: 558,
+      rightJuz: 30,
+      leftAyahId: 5673,
+      rightAyahId: 6237,
+    });
+  });
+
+  it('should return correct JuzMeta when ayah is specified', () => {
+    const result = findJuzMetaBySurah(2, 150);
+    expect(result).toEqual({
+      leftjuz: 2,
+      ayahsBetweenJuzSurah: -141,
+      rightJuz: 3,
+      leftAyahId: 149,
+      rightAyahId: 386,
+    });
+  });
+
+  it('should handle edge case when ayah is at juz boundary', () => {
+    const result = findJuzMetaBySurah(2, 141);
+    expect(result).toEqual({
+      leftjuz: 1,
+      ayahsBetweenJuzSurah: 7,
+      rightJuz: 3,
+      leftAyahId: 1,
+      rightAyahId: 386,
+    });
+  });
+
+  it('should use mocked findSurahByAyaid', () => {
+    const mockFindSurahByAyaid = vi.spyOn(findSurahByAyaidModule, 'findSurahByAyaid');
+    mockFindSurahByAyaid.mockReturnValue([2, 1]);
+    const result = findJuzMetaBySurah(2);
+    expect(mockFindSurahByAyaid).toHaveBeenCalled();
+    expect(result.rightJuz).toBe(30);
+  });
+});
diff --git a/tests/findPage.spec.ts b/tests/findPage.spec.ts
new file mode 100644
index 0000000..9f6c8df
--- /dev/null
+++ b/tests/findPage.spec.ts
@@ -0,0 +1,54 @@
+import { expect, vi } from 'vitest';
+import { findPage } from '../src';
+import * as module from "../src/checkValidAyahId";
+import * as surahModule from "../src/checkValidSurah";
+import * as ayahIdModule from "../src/findAyaidBySurah";
+
+describe("findPage", () => {
+    beforeEach(() => {
+        vi.clearAllMocks();
+    });
+
+    it("basic", () => {
+        expect(findPage(1, 1)).toEqual(1)
+        expect(findPage(1, 2)).toEqual(1)
+        expect(findPage(2, 1)).toEqual(2)
+        expect(findPage(114, 1)).toEqual(604)
+    })
+
+    it("should return correct page for first surah and ayah", () => {
+        const result = findPage(1, 1);
+        expect(result).toBe(1);
+    });
+
+    it("should return correct page for last surah and ayah", () => {
+        const result = findPage(114, 6);
+        expect(result).toBe(604);
+    });
+
+    it("should return correct page for middle surah and ayah", () => {
+        const result = findPage(56, 50);
+        expect(result).toBe(535);
+    });
+
+    it("should handle ayahMode correctly", () => {
+        const spy = vi.spyOn(module, "checkValidAyahId");
+        const result = findPage(0, 100, true);
+        expect(spy).toHaveBeenCalledWith(100);
+        expect(result).toBe(14);
+    });
+
+    it("should call checkValidSurah and findAyaidBySurah when not in ayahMode", () => {
+        const surahSpy = vi.spyOn(surahModule, "checkValidSurah");
+        const ayahIdSpy = vi.spyOn(ayahIdModule, "findAyaidBySurah");
+        const result = findPage(5, 10);
+        expect(surahSpy).toHaveBeenCalledWith(5);
+        expect(ayahIdSpy).toHaveBeenCalledWith(5, 10);
+        expect(result).toBe(109);
+    });
+
+    it("should handle edge case when ayahId is at page boundary", () => {
+        const result = findPage(2, 141);
+        expect(result).toBe(21);
+    });
+});
diff --git a/tests/findRangeAroundAyah.spec.ts b/tests/findRangeAroundAyah.spec.ts
new file mode 100644
index 0000000..1b1b060
--- /dev/null
+++ b/tests/findRangeAroundAyah.spec.ts
@@ -0,0 +1,47 @@
+import { findRangeAroundAyah, meta } from "../src";
+
+describe("findRangeAroundAyah", () => {
+  it("should return correct range for juz mode", () => {
+    expect(findRangeAroundAyah(2, 142, "juz")).toEqual([149, 259]);
+  });
+
+  it("should return correct range for surah mode", () => {
+    expect(findRangeAroundAyah(3, 60, "surah")).toEqual([294, 493]);
+  });
+
+  it("should return correct range for ayah mode", () => {
+    expect(findRangeAroundAyah(4, 20, "ayah")).toEqual([513, 513]);
+  });
+
+  it("should return correct range for page mode", () => {
+    expect(findRangeAroundAyah(5, 30, "page")).toEqual([693, 700]);
+    expect(findRangeAroundAyah(1, 1, "page")).toEqual([1, 7]);
+    expect(findRangeAroundAyah(114, 4, "page")).toEqual([6222, 6236]);
+  });
+
+  it("should return full Quran range for all mode", () => {
+    expect(findRangeAroundAyah(1, 1, "all")).toEqual([1, meta.numAyas]);
+    expect(findRangeAroundAyah(2, 21, "all")).toEqual([1, meta.numAyas]);
+    expect(findRangeAroundAyah(114, 6, "all")).toEqual([1, meta.numAyas]);
+  });
+
+  it("should handle ayahMode correctly", () => {
+    expect(findRangeAroundAyah(1, 500, "ayah", true)).toEqual([500, 500]);
+  });
+
+  it("should throw error for invalid surah in non-ayahMode", () => {
+    expect(() => findRangeAroundAyah(115, 1, "surah")).toThrow();
+  });
+
+  it("should throw error for invalid ayah in non-ayahMode", () => {
+    expect(() => findRangeAroundAyah(1, 8, "ayah")).toThrow();
+  });
+
+  it("should return correct range for first ayah of first surah", () => {
+    expect(findRangeAroundAyah(1, 1, "juz")).toEqual([1, 148]);
+  });
+
+  it("should return correct range for last ayah of last surah", () => {
+    expect(findRangeAroundAyah(114, 6, "surah")).toEqual([6231, 6236]);
+  });
+});
diff --git a/tests/findSurahByAyaid.spec.ts b/tests/findSurahByAyaid.spec.ts
new file mode 100644
index 0000000..e595d3c
--- /dev/null
+++ b/tests/findSurahByAyaid.spec.ts
@@ -0,0 +1,40 @@
+import { meta } from "../src";
+import { findSurahByAyaid } from "../src/findSurahByAyaid";
+
+describe("findSurahByAyaid", () => {
+
+    it("surah of ayaid 1", () => {
+        expect(findSurahByAyaid(1)).toEqual(expect.arrayContaining([1, 1]))
+        expect(findSurahByAyaid(2)).toEqual(expect.arrayContaining([1, 2]))
+        expect(findSurahByAyaid(7)).toEqual(expect.arrayContaining([1, 7]))
+        expect(findSurahByAyaid(8)).toEqual(expect.arrayContaining([2, 1]))
+        expect(findSurahByAyaid(6231)).toEqual(expect.arrayContaining([114, 1]))
+        expect(findSurahByAyaid(6230)).toEqual(expect.arrayContaining([113, 5]))
+        expect(findSurahByAyaid(meta.numAyas)).toEqual(
+            expect.arrayContaining([114, 6])
+        )
+    })
+
+    it("should return correct surah and ayah for first ayah", () => {
+        expect(findSurahByAyaid(1)).toEqual([1, 1]);
+    });
+
+    it("should return correct surah and ayah for last ayah", () => {
+        expect(findSurahByAyaid(meta.numAyas)).toEqual([114, 6]);
+    });
+
+    it("should return correct surah and ayah for middle ayah", () => {
+        const middleAyah = Math.floor(meta.numAyas / 2);
+        expect(findSurahByAyaid(middleAyah)).toEqual([26, 186]);
+    });
+
+    it("should return correct surah and ayah for ayah at surah boundary", () => {
+        expect(findSurahByAyaid(7)).toEqual([1, 7]);
+        expect(findSurahByAyaid(8)).toEqual([2, 1]);
+    });
+
+    it("should throw RangeError for invalid ayah id", () => {
+        expect(() => findSurahByAyaid(0)).toThrow(RangeError);
+        expect(() => findSurahByAyaid(meta.numAyas + 1)).toThrow(RangeError);
+    });
+});
diff --git a/tests/getAyaCountinSura.spec.ts b/tests/getAyaCountinSura.spec.ts
new file mode 100644
index 0000000..fa8a2e0
--- /dev/null
+++ b/tests/getAyaCountinSura.spec.ts
@@ -0,0 +1,28 @@
+import { getAyaCountinSura } from "../src";
+
+describe("getAyaCountinSura", () => {
+  it("should return correct aya count for first surah", () => {
+    expect(getAyaCountinSura(1)).toBe(7);
+  });
+
+  it("should return correct aya count for last surah", () => {
+    expect(getAyaCountinSura(114)).toBe(6);
+  });
+
+  it("should return correct aya count for a middle surah", () => {
+    expect(getAyaCountinSura(56)).toBe(96);
+  });
+
+  it("should return correct aya count for the longest surah", () => {
+    expect(getAyaCountinSura(2)).toBe(286);
+  });
+
+  it("should return correct aya count for the shortest surah", () => {
+    expect(getAyaCountinSura(108)).toBe(3);
+  });
+
+  it("should throw an error for invalid surah number", () => {
+    expect(() => getAyaCountinSura(0)).toThrow();
+    expect(() => getAyaCountinSura(115)).toThrow();
+  });
+});
diff --git a/tests/getSurahMeta.spec.ts b/tests/getSurahMeta.spec.ts
new file mode 100644
index 0000000..54ae1f0
--- /dev/null
+++ b/tests/getSurahMeta.spec.ts
@@ -0,0 +1,27 @@
+import { getSurahMeta } from "../src/getSurahMeta";
+import { SuraList } from "../src/lists/surahList";
+
+describe("getSurahMeta", () => {
+  it("should return correct metadata for first surah", () => {
+    const result = getSurahMeta(1);
+    expect(result).toEqual(SuraList[1]);
+  });
+
+  it("should return correct metadata for last surah", () => {
+    const result = getSurahMeta(114);
+    expect(result).toEqual(SuraList[114]);
+  });
+
+  it("should return correct metadata for a middle surah", () => {
+    const result = getSurahMeta(57);
+    expect(result).toEqual(SuraList[57]);
+  });
+
+  it("should throw an error for surah number 0", () => {
+    expect(() => getSurahMeta(0)).toThrow();
+  });
+
+  it("should throw an error for surah number 115", () => {
+    expect(() => getSurahMeta(115)).toThrow();
+  });
+});
diff --git a/tests/isAyahJuzFirst.spec.ts b/tests/isAyahJuzFirst.spec.ts
new file mode 100644
index 0000000..0406200
--- /dev/null
+++ b/tests/isAyahJuzFirst.spec.ts
@@ -0,0 +1,48 @@
+import { isAyahJuzFirst } from "../src/isAyahJuzFirst";
+
+describe("isAyahJuzFirst", () => {
+
+    it("basic", () => {
+        expect(isAyahJuzFirst(1, 1)).toEqual(1)
+        expect(isAyahJuzFirst(-1, 1, true)).toEqual(1)
+        expect(isAyahJuzFirst(2, 142)).toEqual(2)
+        expect(isAyahJuzFirst(-1, 149, true)).toEqual(2)
+
+        expect(isAyahJuzFirst(2, 1)).toEqual(-3)
+        expect(isAyahJuzFirst(114, 1)).toEqual(-32)
+        // expect(isAyahJuzFirst(1, 114)).toEqual(-3)
+    })
+
+    it("should return correct Juz for the first ayah of a Juz", () => {
+        expect(isAyahJuzFirst(2, 142)).toBe(2);
+        expect(isAyahJuzFirst(4, 1)).toBeLessThan(0);
+        expect(isAyahJuzFirst(6, 111)).toBe(8);
+    });
+
+    it("should return correct Juz for non-first ayah of a Juz", () => {
+        expect(isAyahJuzFirst(2, 143)).toBeLessThan(0);
+        expect(isAyahJuzFirst(4, 2)).toBeLessThan(0);
+        expect(isAyahJuzFirst(6, 112)).toBeLessThan(0);
+    });
+
+    it("should handle ayahMode correctly", () => {
+        expect(isAyahJuzFirst(0, 2142, true)).toBeLessThan(0);
+        expect(isAyahJuzFirst(0, 4001, true)).toBeLessThan(0);
+        expect(isAyahJuzFirst(0, 5673, true)).toBe(30);
+    });
+
+    it("should throw an error for invalid surah", () => {
+        expect(() => isAyahJuzFirst(0, 1)).toThrow();
+        expect(() => isAyahJuzFirst(115, 1)).toThrow();
+    });
+
+    it("should throw an error for invalid ayah", () => {
+        expect(() => isAyahJuzFirst(1, 0)).toThrow();
+        expect(() => isAyahJuzFirst(1, 8)).toThrow();
+    });
+
+    it("should handle edge cases", () => {
+        expect(isAyahJuzFirst(1, 1)).toBe(1);
+        expect(isAyahJuzFirst(114, 6)).toBeLessThan(0);
+    });
+});
diff --git a/tests/isAyahPageFirst.spec.ts b/tests/isAyahPageFirst.spec.ts
new file mode 100644
index 0000000..924a22b
--- /dev/null
+++ b/tests/isAyahPageFirst.spec.ts
@@ -0,0 +1,48 @@
+import { isAyahPageFirst } from "../src/isAyahPageFirst";
+
+describe("isAyahPageFirst", () => {
+
+    it("basic", () => {
+        expect(isAyahPageFirst(1, 1)).toEqual(1)
+        expect(isAyahPageFirst(-1, 1, true)).toEqual(1)
+        expect(isAyahPageFirst(2, 1)).toEqual(2)
+        expect(isAyahPageFirst(2, 142)).toEqual(22)
+        expect(isAyahPageFirst(-1, 149, true)).toEqual(22)
+
+        expect(isAyahPageFirst(2, 2)).toEqual(-4)
+        // expect(isAyahPageFirst(114, 1)).toEqual(-32)
+        // expect(isAyahPageFirst(1, 114)).toEqual(-3)
+    })
+    
+    it("should return correct Juz for valid surah and ayah in ayah mode", () => {
+        const result = isAyahPageFirst(1, 1, true);
+        expect(result).toBeDefined();
+        expect(typeof result).toBe("number");
+    });
+
+    it("should return correct Juz for valid surah and ayah in non-ayah mode", () => {
+        const result = isAyahPageFirst(1, 1);
+        expect(result).toBeDefined();
+        expect(typeof result).toBe("number");
+    });
+
+    it("should handle edge case with last surah and ayah", () => {
+        const result = isAyahPageFirst(114, 6);
+        expect(result).toBeDefined();
+        expect(typeof result).toBe("number");
+    });
+
+    it("should throw error for invalid surah in non-ayah mode", () => {
+        expect(() => isAyahPageFirst(115, 1)).toThrow();
+    });
+
+    it("should throw error for invalid ayah in ayah mode", () => {
+        expect(() => isAyahPageFirst(1, 0, true)).toThrow();
+    });
+
+    it("should handle middle surah and ayah", () => {
+        const result = isAyahPageFirst(50, 20);
+        expect(result).toBeDefined();
+        expect(typeof result).toBe("number");
+    });
+});
diff --git a/tests/nextAyah.spec.ts b/tests/nextAyah.spec.ts
new file mode 100644
index 0000000..2a97057
--- /dev/null
+++ b/tests/nextAyah.spec.ts
@@ -0,0 +1,33 @@
+import { meta, nextAyah } from "../src";
+
+describe("nextAyah", () => {
+
+    it("should return the next ayah within the same surah", () => {
+        expect(nextAyah(1, 1)).toEqual(expect.arrayContaining([1, 2]));
+        expect(nextAyah(2, 285)).toEqual(expect.arrayContaining([2, 286]));
+    });
+
+    it("should return the first ayah of the next surah when at the end of a surah", () => {
+        expect(nextAyah(1, 7)).toEqual(expect.arrayContaining([2, 1]));
+        expect(nextAyah(113, 5)).toEqual(expect.arrayContaining([114, 1]));
+    });
+
+    it("should wrap around to the first ayah of the first surah when at the end of the Quran", () => {
+        expect(nextAyah(114, 6)).toEqual(expect.arrayContaining([1, 1]));
+    });
+
+    it("should throw RangeError for invalid surah", () => {
+        expect(() => nextAyah(0, 1)).toThrow(RangeError);
+        expect(() => nextAyah(115, 1)).toThrow(RangeError);
+    });
+
+    it("should throw RangeError with correct message for invalid surah", () => {
+        expect(() => nextAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
+        expect(() => nextAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
+    });
+
+    it("should handle edge cases", () => {
+        expect(nextAyah(9, 127)).toEqual(expect.arrayContaining([9, 128]));
+        expect(nextAyah(2, 286)).toEqual(expect.arrayContaining([3, 1]));
+    });
+});
diff --git a/tests/pageMeta.spec.ts b/tests/pageMeta.spec.ts
new file mode 100644
index 0000000..5db975b
--- /dev/null
+++ b/tests/pageMeta.spec.ts
@@ -0,0 +1,32 @@
+import { meta, pageMeta } from "../src";
+
+describe("pageMeta", () => {
+  it("should return correct metadata for the first page", () => {
+    const result = pageMeta(1);
+    expect(result.pageNum).toBe(1);
+    expect(result.first).toEqual([1, 1]);
+    expect(result.last).toEqual([1, 7]);
+  });
+
+  it("should return correct metadata for the last page", () => {
+    const result = pageMeta(meta.numPages);
+    expect(result.pageNum).toBe(meta.numPages);
+    expect(result.first).toEqual([112, 1]);
+    expect(result.last).toEqual([114, 6]);
+  });
+
+  it("should return correct metadata for a middle page", () => {
+    const result = pageMeta(300);
+    expect(result.pageNum).toBe(300);
+    expect(result.first).toEqual([18, 54]);
+    expect(result.last).toEqual([18, 61]);
+  });
+
+  it("should throw RangeError for page number below 1", () => {
+    expect(() => pageMeta(0)).toThrow(RangeError);
+  });
+
+  it("should throw RangeError for page number above numPages", () => {
+    expect(() => pageMeta(meta.numPages + 1)).toThrow(RangeError);
+  });
+});
diff --git a/tests/prevAyah.spec.ts b/tests/prevAyah.spec.ts
new file mode 100644
index 0000000..f1becfe
--- /dev/null
+++ b/tests/prevAyah.spec.ts
@@ -0,0 +1,39 @@
+import { meta } from "../src";
+import { prevAyah } from "../src/prevAyah";
+
+describe("prevAyah", () => {
+
+    it("basic", () => {
+        expect(prevAyah(1, 6)).toEqual(expect.arrayContaining([1, 5]))
+        expect(prevAyah(113, 1)).toEqual(expect.arrayContaining([112, 4]))
+    })
+
+    it("should return the previous ayah within the same surah", () => {
+        expect(prevAyah(1, 2)).toEqual(expect.arrayContaining([1, 1]));
+        expect(prevAyah(2, 286)).toEqual(expect.arrayContaining([2, 285]));
+    });
+
+    it("should return the last ayah of the previous surah when at the beginning of a surah", () => {
+        expect(prevAyah(2, 1)).toEqual(expect.arrayContaining([1, 7]));
+        expect(prevAyah(114, 1)).toEqual(expect.arrayContaining([113, 5]));
+    });
+
+    it("should wrap around to the last ayah of the last surah when at the beginning of the Quran", () => {
+        expect(prevAyah(1, 1)).toEqual(expect.arrayContaining([114, 6]));
+    });
+
+    it("should throw RangeError for invalid surah", () => {
+        expect(() => prevAyah(0, 1)).toThrow(RangeError);
+        expect(() => prevAyah(115, 1)).toThrow(RangeError);
+    });
+
+    it("should throw RangeError with correct message for invalid surah", () => {
+        expect(() => prevAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
+        expect(() => prevAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
+    });
+
+    it("should handle edge cases", () => {
+        expect(prevAyah(9, 128)).toEqual(expect.arrayContaining([9, 127]));
+        expect(prevAyah(3, 1)).toEqual(expect.arrayContaining([2, 286]));
+    });
+});
diff --git a/tests/quran-data.spec.ts b/tests/quran-data.spec.ts
index 36c5312..739145d 100644
--- a/tests/quran-data.spec.ts
+++ b/tests/quran-data.spec.ts
@@ -1,30 +1,15 @@
 import {
   findAyaidBySurah,
-  findSurahByAyaid,
-  isAyahJuzFirst,
-  findJuz,
-  findJuzHizbByAyaid,
   findJuzMetaBySurah,
   findPage,
-  nextAyah,
-  prevAyah,
-  ayaStringSplitter,
-  // pageMetaOld,
-  JuzList,
-  pageMeta,
-  SuraList,
-  SajdaList,
-  HizbQuarterList,
-  ManzilList,
-  PageList,
-  RukuList,
+  findSurahByAyaid,
   getSurahMeta,
-  findJuzAndShift,
+  isAyahJuzFirst,
+  JuzList,
   meta,
-  findJuzByAyaid,
-  isAyahPageFirst,
+  pageMeta
 } from "../src/"
-import { AyahNo, AyahId, Surah } from "../src/types"
+import { AyahId, AyahNo, Surah } from "../src/types"
 
 console.log("STARING")
 console.log(1, findSurahByAyaid(1))
@@ -43,8 +28,7 @@ console.log("isAyahJuzFirst 2", isAyahJuzFirst(2, 142))
 console.log("isAyahJuzFirst -1", isAyahJuzFirst(2, 143))
 console.log("findAyaidBySurah 110.3", findAyaidBySurah(110, 3))
 console.log("findAyaidBySurah 114.6", findAyaidBySurah(114, 6))
-console.log("2,1", findJuz(2, 1))
-console.log("114,1", findJuz(114, 1))
+
 console.log("JuzList 6237", JuzList[31])
 console.log("findJuzMetaBySurah 1,1", findJuzMetaBySurah(1, 1))
 console.log("findJuzMetaBySurah 2,1", findJuzMetaBySurah(2, 1))
@@ -58,176 +42,6 @@ console.log("pageMeta 604", pageMeta(604))
 console.log("pmeta", pageMeta(1))
 // console.log("pmeta", pageMetaOld(1))
 
-describe("nextAyah", () => {
-  it("true", () => {
-    expect(nextAyah(1, 1)).toEqual(expect.arrayContaining([1, 2]))
-    expect(nextAyah(1, 7)).toEqual(expect.arrayContaining([2, 1]))
-    expect(nextAyah(113, 5)).toEqual(expect.arrayContaining([114, 1]))
-    expect(nextAyah(114, 6)).toEqual(expect.arrayContaining([1, 1]))
-  })
-})
-
-describe("prevAyah", () => {
-  it("true", () => {
-    expect(prevAyah(1, 2)).toEqual(expect.arrayContaining([1, 1]))
-    expect(prevAyah(1, 6)).toEqual(expect.arrayContaining([1, 5]))
-    expect(prevAyah(2, 1)).toEqual(expect.arrayContaining([1, 7]))
-    expect(prevAyah(113, 1)).toEqual(expect.arrayContaining([112, 4]))
-    expect(prevAyah(1, 1)).toEqual(expect.arrayContaining([114, 6]))
-  })
-})
-
-describe("ayaStringSplitter", () => {
-  it("true", () => {
-    expect(ayaStringSplitter("1:1")).toEqual([1, 1])
-    expect(ayaStringSplitter("1:1-5")).toEqual([1, [1, 5]])
-    expect(ayaStringSplitter("114:1")).toEqual([114, 1])
-    // expect(ayaStringSplitter("115:1")).toEqual([115,1])
-  })
-})
-
-describe("findPage", () => {
-  it("true", () => {
-    expect(findPage(1, 1)).toEqual(1)
-    expect(findPage(1, 2)).toEqual(1)
-    expect(findPage(2, 1)).toEqual(2)
-    expect(findPage(114, 1)).toEqual(604)
-  })
-})
-
-describe("findJuzByAyaid", () => {
-  it("true", () => {
-    expect(findJuzByAyaid(1)).toEqual(1)
-    expect(findJuzByAyaid(2)).toEqual(1)
-    expect(findJuzByAyaid(100)).toEqual(1)
-    expect(findJuzByAyaid(148)).toEqual(1)
-    expect(findJuzByAyaid(149)).toEqual(2)
-    expect(findJuzByAyaid(200)).toEqual(2)
-    expect(findJuzByAyaid(6236)).toEqual(30)
-  })
-})
-
-describe("findJuz", () => {
-  it("true", () => {
-    expect(findJuz(1, 1)).toEqual(1)
-    expect(findJuz(1, 2)).toEqual(1)
-    expect(findJuz(2, 1)).toEqual(1)
-    expect(findJuz(3, 1)).toEqual(3)
-    expect(findJuz(114, 1)).toEqual(30)
-  })
-})
-
-describe("findJuzAndShift", () => {
-  it("true", () => {
-    expect(findJuzAndShift(1, 1)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 0,
-    })
-    expect(findJuzAndShift(1, 1, true)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 0,
-    })
-
-    expect(findJuzAndShift(1, 2)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 0,
-    })
-
-    expect(findJuzAndShift(2, 1)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 7,
-    })
-
-    expect(findJuzAndShift(2, 141)).toEqual({
-      juz: 1,
-      leftAyahId: 1,
-      ayahsBetweenJuzSurah: 7,
-    })
-
-    expect(findJuzAndShift(2, 142)).toEqual({
-      juz: 2,
-      leftAyahId: 149,
-      ayahsBetweenJuzSurah: -141,
-    })
-    expect(findJuzAndShift(2, 143)).toEqual({
-      juz: 2,
-      leftAyahId: 149,
-      ayahsBetweenJuzSurah: -141,
-    })
-  })
-})
-
-describe("findJuzHizbByAyaid", () => {
-  it("true", () => {
-    expect(findJuzHizbByAyaid(1)).toEqual({ hizb: 1, id: 1, juz: 1 })
-    expect(findJuzHizbByAyaid(32)).toEqual({ hizb: 1, id: 1, juz: 1 })
-    expect(findJuzHizbByAyaid(33)).toEqual({ hizb: 2, id: 2, juz: 1 })
-    expect(findJuzHizbByAyaid(148)).toEqual({ hizb: 8, id: 8, juz: 1 })
-    expect(findJuzHizbByAyaid(149)).toEqual({ hizb: 1, id: 9, juz: 2 })
-    expect(findJuzHizbByAyaid(meta.numAyas)).toEqual({
-      hizb: 8,
-      id: 240,
-      juz: 30,
-    })
-  })
-})
-
-describe("isAyahJuzFirst", () => {
-  it("true", () => {
-    expect(isAyahJuzFirst(1, 1)).toEqual(1)
-    expect(isAyahJuzFirst(-1, 1, true)).toEqual(1)
-    expect(isAyahJuzFirst(2, 142)).toEqual(2)
-    expect(isAyahJuzFirst(-1, 149, true)).toEqual(2)
-  })
-
-  it("false", () => {
-    expect(isAyahJuzFirst(2, 1)).toEqual(-3)
-    expect(isAyahJuzFirst(114, 1)).toEqual(-32)
-    expect(isAyahJuzFirst(1, 114)).toEqual(-3)
-  })
-})
-
-describe("isAyahPageFirst", () => {
-  it("true", () => {
-    expect(isAyahPageFirst(1, 1)).toEqual(1)
-    expect(isAyahPageFirst(-1, 1, true)).toEqual(1)
-    expect(isAyahPageFirst(2, 1)).toEqual(2)
-    expect(isAyahPageFirst(2, 142)).toEqual(22)
-    expect(isAyahPageFirst(-1, 149, true)).toEqual(22)
-  })
-
-  it("false", () => {
-    expect(isAyahPageFirst(2, 2)).toEqual(-4)
-    // expect(isAyahPageFirst(114, 1)).toEqual(-32)
-    // expect(isAyahPageFirst(1, 114)).toEqual(-3)
-  })
-})
-
-describe("findSurahByAyaid", () => {
-  it("surah of ayaid 1", () => {
-    expect(findSurahByAyaid(1)).toEqual(expect.arrayContaining([1, 1]))
-    expect(findSurahByAyaid(2)).toEqual(expect.arrayContaining([1, 2]))
-    expect(findSurahByAyaid(7)).toEqual(expect.arrayContaining([1, 7]))
-    expect(findSurahByAyaid(8)).toEqual(expect.arrayContaining([2, 1]))
-    expect(findSurahByAyaid(meta.numAyas)).toEqual(
-      expect.arrayContaining([114, 6])
-    )
-  })
-})
-
-describe("findAyaidBySurah", () => {
-  it("ayaid of surah 1", () => {
-    expect(findAyaidBySurah(1, 1)).toEqual(1)
-    expect(findAyaidBySurah(1, 2)).toEqual(2)
-    expect(findAyaidBySurah(2, 1)).toEqual(8)
-    expect(findAyaidBySurah(114, 6)).toEqual(meta.numAyas)
-  })
-})
-
 let f = (i: AyahId) =>
   expect(findAyaidBySurah(...findSurahByAyaid(i))).toEqual(i)
 let xf = (i: Surah, j: AyahNo) =>
diff --git a/types/checkValidAyahId.d.ts b/types/checkValidAyahId.d.ts
new file mode 100644
index 0000000..5031fbb
--- /dev/null
+++ b/types/checkValidAyahId.d.ts
@@ -0,0 +1,8 @@
+import { AyahId } from "./types";
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayaId - The Ayah (verse) ID to check.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+export declare function checkValidAyahId(ayaId: AyahId): boolean;
diff --git a/types/checkValidSurah.d.ts b/types/checkValidSurah.d.ts
new file mode 100644
index 0000000..d403719
--- /dev/null
+++ b/types/checkValidSurah.d.ts
@@ -0,0 +1,9 @@
+import { Surah } from "./types";
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+export declare function checkValidSurah(surah: Surah, checkOnly?: boolean): boolean;
diff --git a/types/checkValidSurahAyah.d.ts b/types/checkValidSurahAyah.d.ts
new file mode 100644
index 0000000..6bdf65d
--- /dev/null
+++ b/types/checkValidSurahAyah.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, Surah } from "./types";
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+export declare function checkValidSurahAyah(surah: Surah, ayah: AyahNo, checkOnly?: boolean): boolean;
diff --git a/types/const.d.ts b/types/const.d.ts
index 1cf624f..4329220 100644
--- a/types/const.d.ts
+++ b/types/const.d.ts
@@ -1,4 +1,4 @@
-declare type QuranMeta = {
+type QuranMeta = {
     numAyas: number;
     numSuras: number;
     numPages: number;
diff --git a/types/findAyaidBySurah.d.ts b/types/findAyaidBySurah.d.ts
new file mode 100644
index 0000000..f556193
--- /dev/null
+++ b/types/findAyaidBySurah.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, AyahNo, Surah } from "./types";
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+export declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
diff --git a/types/findJuz.d.ts b/types/findJuz.d.ts
new file mode 100644
index 0000000..066ebb7
--- /dev/null
+++ b/types/findJuz.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, Juz, Surah } from "./types";
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+export declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
diff --git a/types/findJuzAndShift.d.ts b/types/findJuzAndShift.d.ts
new file mode 100644
index 0000000..f3761a4
--- /dev/null
+++ b/types/findJuzAndShift.d.ts
@@ -0,0 +1,17 @@
+import { AyahId, AyahNo, Juz, Surah } from "./types";
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+export declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
diff --git a/types/findJuzByAyaid.d.ts b/types/findJuzByAyaid.d.ts
new file mode 100644
index 0000000..be02da9
--- /dev/null
+++ b/types/findJuzByAyaid.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, Juz } from "./types";
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+export declare function findJuzByAyaid(ayaId: AyahId): Juz;
diff --git a/types/findJuzHizb.d.ts b/types/findJuzHizb.d.ts
new file mode 100644
index 0000000..44b440f
--- /dev/null
+++ b/types/findJuzHizb.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, JuzHizb, Surah } from "./types";
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+export declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
diff --git a/types/findJuzHizbByAyaid.d.ts b/types/findJuzHizbByAyaid.d.ts
new file mode 100644
index 0000000..4438267
--- /dev/null
+++ b/types/findJuzHizbByAyaid.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, JuzHizb } from "./types";
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+export declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
diff --git a/types/findJuzMetaBySurah.d.ts b/types/findJuzMetaBySurah.d.ts
new file mode 100644
index 0000000..930c858
--- /dev/null
+++ b/types/findJuzMetaBySurah.d.ts
@@ -0,0 +1,8 @@
+import { AyahNo, JuzMeta, Surah } from "./types";
+/**
+ * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
+ * @param {*} suraNumber
+ * @param {*} ayaNumber
+ * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
+ */
+export declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
diff --git a/types/findPage.d.ts b/types/findPage.d.ts
new file mode 100644
index 0000000..6213d7f
--- /dev/null
+++ b/types/findPage.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, Page, Surah } from "./types";
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+export declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
diff --git a/types/findRangeAroundAyah.d.ts b/types/findRangeAroundAyah.d.ts
new file mode 100644
index 0000000..54f649e
--- /dev/null
+++ b/types/findRangeAroundAyah.d.ts
@@ -0,0 +1,13 @@
+import { AyahNo, Surah, SurahAyah } from "./types";
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+export declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
diff --git a/types/findSurahByAyaid.d.ts b/types/findSurahByAyaid.d.ts
new file mode 100644
index 0000000..931be95
--- /dev/null
+++ b/types/findSurahByAyaid.d.ts
@@ -0,0 +1,8 @@
+import { AyahId, SurahAyah } from "./types";
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+export declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
diff --git a/types/getAyaCountinSura.d.ts b/types/getAyaCountinSura.d.ts
new file mode 100644
index 0000000..a8cff44
--- /dev/null
+++ b/types/getAyaCountinSura.d.ts
@@ -0,0 +1,7 @@
+import { Surah } from "./types";
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+export declare function getAyaCountinSura(surah: Surah): number;
diff --git a/types/getSurahMeta.d.ts b/types/getSurahMeta.d.ts
new file mode 100644
index 0000000..408c72d
--- /dev/null
+++ b/types/getSurahMeta.d.ts
@@ -0,0 +1,8 @@
+import { Surah, SurahMeta } from "./types";
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+export declare function getSurahMeta(surah: Surah): SurahMeta;
diff --git a/types/index.d.ts b/types/index.d.ts
index 091d9f6..12512c1 100644
--- a/types/index.d.ts
+++ b/types/index.d.ts
@@ -1,123 +1,31 @@
-import { meta } from "./const";
-import { AyahId, AyahNo, Page, Juz, SurahAyah, PageMeta, JuzMeta, JuzHizb, SurahMeta, Sajda, Surah } from "./types";
-export { AyahId, AyahNo, Page, Juz, SurahAyah, PageMeta, JuzMeta, SurahMeta, Sajda, Surah, };
 export { suraNames as suraNamesEn } from "./i18n/sura.en";
 export { suraNames as suraNamesRu } from "./i18n/sura.ru";
-import { SuraList } from "./surahList";
-declare const JuzList: AyahId[];
-import { HizbQuarterList } from "./hizbList";
-declare const ManzilList: AyahId[];
-import { RukuList } from "./rukuList";
-import { PageList } from "./pageList";
-declare const SajdaList: Sajda[];
-import { ayaStringSplitter } from "./ayaStringSplitter";
-export { meta, SuraList, JuzList, HizbQuarterList, ManzilList, RukuList, PageList, SajdaList, ayaStringSplitter, };
-/**
- *
- * @param {*} ayaId
- */
-export declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
-/**
- *
- * @param {*} ayaId
- */
-export declare function findJuzByAyaid(ayaId: AyahId): Juz;
-/**
- *
- * @param {*} ayaId
- */
-export declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
-/**
- * Returns Positive number if aya is first ayah of juz, number is juz number
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
-/**
- *  Find juz containing ayah
- * @param surah
- * @param ayah
- * @param ayahMode
- * @returns
- */
-export declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
-    juz: Juz;
-    leftAyahId: AyahId;
-    ayahsBetweenJuzSurah: number;
-};
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
-/**
- * Get Surah meta
- * @param surah
- */
-export declare function getSurahMeta(surah: Surah): SurahMeta;
-/**
- *
- * @param {*} suraNumber
- * @param {*} ayaNumber
- */
-export declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
-/**
- *
- * @param {*} surah
- * @param {*} ayah```
- */
-export declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
-/**
- *
- * @param {*} surah
- */
-export declare function getAyaCountinSura(surah: Surah): number;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
-/**
- *
- * @param {*} surah
- * @param {*} ayah
- */
-export declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
-/**
- * Get the meta, first and last ayahs of the page
- * @param {*} pageNum
- */
-export declare function pageMeta(pageNum: Page): PageMeta;
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-export declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
+export { RukuList } from "./lists/rukuList";
+export { ayaStringSplitter } from "./ayaStringSplitter";
+export { checkValidAyahId } from "./checkValidAyahId";
+export { checkValidSurah } from "./checkValidSurah";
+export { checkValidSurahAyah } from "./checkValidSurahAyah";
+export { meta } from "./const";
+export { findAyaidBySurah } from "./findAyaidBySurah";
+export { findJuz } from "./findJuz";
+export { findJuzAndShift } from "./findJuzAndShift";
+export { findJuzByAyaid } from "./findJuzByAyaid";
+export { findJuzHizb } from "./findJuzHizb";
+export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
+export { findJuzMetaBySurah } from "./findJuzMetaBySurah";
+export { findPage } from "./findPage";
+export { findRangeAroundAyah } from "./findRangeAroundAyah";
+export { findSurahByAyaid } from "./findSurahByAyaid";
+export { getAyaCountinSura } from "./getAyaCountinSura";
+export { getSurahMeta } from "./getSurahMeta";
+export { isAyahJuzFirst } from "./isAyahJuzFirst";
+export { isAyahPageFirst } from "./isAyahPageFirst";
+export { HizbQuarterList } from "./lists/hizbList";
+export { JuzList } from "./lists/juzList";
+export { ManzilList } from "./lists/manzilList";
+export { PageList } from "./lists/pageList";
+export { SajdaList } from "./lists/sajdaList";
+export { SuraList } from "./lists/surahList";
+export { nextAyah } from "./nextAyah";
+export { pageMeta } from "./pageMeta";
+export { prevAyah } from "./prevAyah";
diff --git a/types/isAyahJuzFirst.d.ts b/types/isAyahJuzFirst.d.ts
new file mode 100644
index 0000000..7ff0b2a
--- /dev/null
+++ b/types/isAyahJuzFirst.d.ts
@@ -0,0 +1,11 @@
+import { AyahNo, Juz, Surah } from "./types";
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+export declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
diff --git a/types/isAyahPageFirst.d.ts b/types/isAyahPageFirst.d.ts
new file mode 100644
index 0000000..c091206
--- /dev/null
+++ b/types/isAyahPageFirst.d.ts
@@ -0,0 +1,10 @@
+import { AyahNo, Juz, Surah } from "./types";
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+export declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
diff --git a/types/juzList.d.ts b/types/juzList.d.ts
new file mode 100644
index 0000000..acdfcbd
--- /dev/null
+++ b/types/juzList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "./types";
+export declare const JuzList: AyahId[];
diff --git a/types/lists/hizbList.d.ts b/types/lists/hizbList.d.ts
new file mode 100644
index 0000000..030f87f
--- /dev/null
+++ b/types/lists/hizbList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "../types";
+export declare const HizbQuarterList: AyahId[];
diff --git a/types/lists/juzList.d.ts b/types/lists/juzList.d.ts
new file mode 100644
index 0000000..86bba79
--- /dev/null
+++ b/types/lists/juzList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "../types";
+export declare const JuzList: AyahId[];
diff --git a/types/lists/manzilList.d.ts b/types/lists/manzilList.d.ts
new file mode 100644
index 0000000..682f0cb
--- /dev/null
+++ b/types/lists/manzilList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "../types";
+export declare const ManzilList: AyahId[];
diff --git a/types/lists/pageList.d.ts b/types/lists/pageList.d.ts
new file mode 100644
index 0000000..7a4df16
--- /dev/null
+++ b/types/lists/pageList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "../types";
+export declare const PageList: AyahId[];
diff --git a/types/lists/rukuList.d.ts b/types/lists/rukuList.d.ts
new file mode 100644
index 0000000..32feb55
--- /dev/null
+++ b/types/lists/rukuList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "../types";
+export declare const RukuList: AyahId[];
diff --git a/types/lists/sajdaList.d.ts b/types/lists/sajdaList.d.ts
new file mode 100644
index 0000000..c8958a7
--- /dev/null
+++ b/types/lists/sajdaList.d.ts
@@ -0,0 +1,2 @@
+import { Sajda } from "../types";
+export declare const SajdaList: Sajda[];
diff --git a/types/lists/surahList.d.ts b/types/lists/surahList.d.ts
new file mode 100644
index 0000000..696c75d
--- /dev/null
+++ b/types/lists/surahList.d.ts
@@ -0,0 +1,2 @@
+import { SurahMeta } from "../types";
+export declare const SuraList: SurahMeta[];
diff --git a/types/manzilList.d.ts b/types/manzilList.d.ts
new file mode 100644
index 0000000..716857b
--- /dev/null
+++ b/types/manzilList.d.ts
@@ -0,0 +1,2 @@
+import { AyahId } from "./types";
+export declare const ManzilList: AyahId[];
diff --git a/types/nextAyah.d.ts b/types/nextAyah.d.ts
new file mode 100644
index 0000000..b9a294f
--- /dev/null
+++ b/types/nextAyah.d.ts
@@ -0,0 +1,8 @@
+import { AyahNo, Surah, SurahAyah } from "./types";
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+export declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
diff --git a/types/pageMeta.d.ts b/types/pageMeta.d.ts
new file mode 100644
index 0000000..f7ff91a
--- /dev/null
+++ b/types/pageMeta.d.ts
@@ -0,0 +1,9 @@
+import { Page, PageMeta } from "./types";
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+export declare function pageMeta(pageNum: Page): PageMeta;
diff --git a/types/prevAyah.d.ts b/types/prevAyah.d.ts
new file mode 100644
index 0000000..b5c9bbb
--- /dev/null
+++ b/types/prevAyah.d.ts
@@ -0,0 +1,8 @@
+import { AyahNo, Surah, SurahAyah } from "./types";
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+export declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
diff --git a/types/sajdaList.d.ts b/types/sajdaList.d.ts
new file mode 100644
index 0000000..dc4c467
--- /dev/null
+++ b/types/sajdaList.d.ts
@@ -0,0 +1,2 @@
+import { Sajda } from "./types";
+export declare const SajdaList: Sajda[];
diff --git a/types/types.d.ts b/types/types.d.ts
index 35ec531..1e48666 100644
--- a/types/types.d.ts
+++ b/types/types.d.ts
@@ -1,30 +1,30 @@
-export declare type Surah = number;
-export declare type AyahNo = number;
-export declare type AyahId = number;
-export declare type Page = number;
-export declare type Juz = number;
-export declare type JuzHizb = {
+export type Surah = number;
+export type AyahNo = number;
+export type AyahId = number;
+export type Page = number;
+export type Juz = number;
+export type JuzHizb = {
     juz: Juz;
     hizb: number;
     id: number;
 };
-export declare type SurahAyah = [Surah, AyahNo];
-export declare type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
-export declare type PageMeta = {
+export type SurahAyah = [Surah, AyahNo];
+export type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+export type PageMeta = {
     pageNum: Page;
     first: SurahAyah;
     last: SurahAyah;
 };
-export declare type JuzMeta = {
+export type JuzMeta = {
     leftjuz: Juz;
     ayahsBetweenJuzSurah: number;
     rightJuz: Juz;
     leftAyahId: AyahId;
     rightAyahId: AyahId;
 };
-export declare type SajdaType = "recommended" | "obligatory";
-export declare type Sajda = [AyahId, SajdaType];
-export declare type SurahMeta = [
+export type SajdaType = "recommended" | "obligatory";
+export type Sajda = [AyahId, SajdaType];
+export type SurahMeta = [
     startAyahId: AyahId,
     ayahCount: number,
     surahOrder: number,
@@ -33,4 +33,4 @@ export declare type SurahMeta = [
     isMeccan: boolean,
     page: Page
 ];
-export declare type SuraName = [name: string, translitName: string];
+export type SuraName = [name: string, translitName: string];
diff --git a/types/utils.d.ts b/types/utils.d.ts
new file mode 100644
index 0000000..87ab115
--- /dev/null
+++ b/types/utils.d.ts
@@ -0,0 +1,9 @@
+/**
+ * Performs a binary search on the given array to find the index of the specified element.
+ *
+ * @param ar - The array to search.
+ * @param el - The element to search for.
+ * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
+ * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
+ */
+export declare function binarySearch(ar: Array<number>, el: number, compare_fn?: (a: number, b: number) => number): number;

From 44f82e5be63585202b2c9aca0bb998191e3d54c7 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 15:14:22 +0100
Subject: [PATCH 05/20] feature: full rewrite of unit tests

---
 tests/.eslintrc                   |   9 --
 tests/ayaStringSplitter.spec.ts   | 106 ++++++++--------
 tests/checkValidAyahId.spec.ts    |  32 ++---
 tests/checkValidSurah.spec.ts     |  36 +++---
 tests/checkValidSurahAyah.spec.ts |  42 +++----
 tests/findAyaidBySurah.spec.ts    |  84 ++++++-------
 tests/findJuz.spec.ts             |  89 +++++++------
 tests/findJuzAndShift.spec.ts     | 200 +++++++++++++++---------------
 tests/findJuzByAyaid.spec.ts      |  44 +++----
 tests/findJuzHizb.spec.ts         |  44 +++----
 tests/findJuzHizbByAyaid.spec.ts  |  93 +++++++-------
 tests/findJuzMetaBySurah.spec.ts  |  78 ++++++------
 tests/findPage.spec.ts            | 103 ++++++++-------
 tests/findRangeAroundAyah.spec.ts |  52 ++++----
 tests/findSurahByAyaid.spec.ts    |  65 +++++-----
 tests/getAyaCountinSura.spec.ts   |  30 ++---
 tests/getSurahMeta.spec.ts        |  32 ++---
 tests/isAyahJuzFirst.spec.ts      |  91 +++++++-------
 tests/isAyahPageFirst.spec.ts     |  91 +++++++-------
 tests/nextAyah.spec.ts            |  51 ++++----
 tests/pageMeta.spec.ts            |  42 +++----
 tests/prevAyah.spec.ts            |  73 ++++++-----
 tests/quran-data.spec.ts          |   4 +-
 tests/tsconfig.json               |   8 ++
 24 files changed, 743 insertions(+), 756 deletions(-)
 delete mode 100644 tests/.eslintrc
 create mode 100644 tests/tsconfig.json

diff --git a/tests/.eslintrc b/tests/.eslintrc
deleted file mode 100644
index 959a4f4..0000000
--- a/tests/.eslintrc
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "env": {
-    "mocha": true
-  },
-  "globals": {
-    "expect": true,
-    "sinon": true
-  }
-}
diff --git a/tests/ayaStringSplitter.spec.ts b/tests/ayaStringSplitter.spec.ts
index 2774a62..16ccaed 100644
--- a/tests/ayaStringSplitter.spec.ts
+++ b/tests/ayaStringSplitter.spec.ts
@@ -1,55 +1,55 @@
-import { ayaStringSplitter } from "../src/ayaStringSplitter";
+import { ayaStringSplitter } from "../src/ayaStringSplitter"
 
 describe("ayaStringSplitter", () => {
-    it("basic tests", () => {
-        expect(ayaStringSplitter("1:1")).toEqual([1, 1])
-        expect(ayaStringSplitter("1:1-5")).toEqual([1, [1, 5]])
-        expect(ayaStringSplitter("114:1")).toEqual([114, 1])
-        // expect(ayaStringSplitter("115:1")).toEqual([115,1])
-    })
-
-    it("error checks", () => {
-        expect(() => ayaStringSplitter("1")).toThrow()
-        expect(() => ayaStringSplitter("")).toThrow()
-        expect(() => ayaStringSplitter("sdsgw")).toThrow()
-        expect(() => ayaStringSplitter("sd:sgw")).toThrow()
-        expect(() => ayaStringSplitter("34:sgw")).toThrow()
-    })
-
-    it("handles single-digit sura and aya numbers", () => {
-        expect(ayaStringSplitter("2:3")).toEqual([2, 3]);
-        expect(ayaStringSplitter("9:5")).toEqual([9, 5]);
-    });
-
-    it("handles multi-digit sura and aya numbers", () => {
-        expect(ayaStringSplitter("110:3")).toEqual([110, 3]);
-        expect(ayaStringSplitter("2:255")).toEqual([2, 255]);
-    });
-
-    it("handles aya ranges with multi-digit numbers", () => {
-        expect(ayaStringSplitter("7:26-30")).toEqual([7, [26, 30]]);
-        expect(ayaStringSplitter("18:1-10")).toEqual([18, [1, 10]]);
-    });
-
-    it("throws error for invalid sura numbers", () => {
-        expect(() => ayaStringSplitter("0:1")).toThrow();
-        expect(() => ayaStringSplitter("115:1")).toThrow();
-    });
-
-    it("throws error for invalid aya numbers", () => {
-        expect(() => ayaStringSplitter("1:0")).toThrow();
-        expect(() => ayaStringSplitter("1:300")).toThrow();
-    });
-
-    it("throws error for invalid range format", () => {
-        expect(() => ayaStringSplitter("1:5-3")).toThrow();
-        expect(() => ayaStringSplitter("1:5-")).toThrow();
-        expect(() => ayaStringSplitter("1:-5")).toThrow();
-    });
-
-    it("throws error for non-numeric input", () => {
-        expect(() => ayaStringSplitter("1:a")).toThrow();
-        expect(() => ayaStringSplitter("a:1")).toThrow();
-        expect(() => ayaStringSplitter("1:1-a")).toThrow();
-    });
-});
+  it("basic tests", () => {
+    expect(ayaStringSplitter("1:1")).toEqual([1, 1])
+    expect(ayaStringSplitter("1:1-5")).toEqual([1, [1, 5]])
+    expect(ayaStringSplitter("114:1")).toEqual([114, 1])
+    // expect(ayaStringSplitter("115:1")).toEqual([115,1])
+  })
+
+  it("error checks", () => {
+    expect(() => ayaStringSplitter("1")).toThrow()
+    expect(() => ayaStringSplitter("")).toThrow()
+    expect(() => ayaStringSplitter("sdsgw")).toThrow()
+    expect(() => ayaStringSplitter("sd:sgw")).toThrow()
+    expect(() => ayaStringSplitter("34:sgw")).toThrow()
+  })
+
+  it("handles single-digit sura and aya numbers", () => {
+    expect(ayaStringSplitter("2:3")).toEqual([2, 3])
+    expect(ayaStringSplitter("9:5")).toEqual([9, 5])
+  })
+
+  it("handles multi-digit sura and aya numbers", () => {
+    expect(ayaStringSplitter("110:3")).toEqual([110, 3])
+    expect(ayaStringSplitter("2:255")).toEqual([2, 255])
+  })
+
+  it("handles aya ranges with multi-digit numbers", () => {
+    expect(ayaStringSplitter("7:26-30")).toEqual([7, [26, 30]])
+    expect(ayaStringSplitter("18:1-10")).toEqual([18, [1, 10]])
+  })
+
+  it("throws error for invalid sura numbers", () => {
+    expect(() => ayaStringSplitter("0:1")).toThrow()
+    expect(() => ayaStringSplitter("115:1")).toThrow()
+  })
+
+  it("throws error for invalid aya numbers", () => {
+    expect(() => ayaStringSplitter("1:0")).toThrow()
+    expect(() => ayaStringSplitter("1:300")).toThrow()
+  })
+
+  it("throws error for invalid range format", () => {
+    expect(() => ayaStringSplitter("1:5-3")).toThrow()
+    expect(() => ayaStringSplitter("1:5-")).toThrow()
+    expect(() => ayaStringSplitter("1:-5")).toThrow()
+  })
+
+  it("throws error for non-numeric input", () => {
+    expect(() => ayaStringSplitter("1:a")).toThrow()
+    expect(() => ayaStringSplitter("a:1")).toThrow()
+    expect(() => ayaStringSplitter("1:1-a")).toThrow()
+  })
+})
diff --git a/tests/checkValidAyahId.spec.ts b/tests/checkValidAyahId.spec.ts
index d36517e..a366320 100644
--- a/tests/checkValidAyahId.spec.ts
+++ b/tests/checkValidAyahId.spec.ts
@@ -1,30 +1,30 @@
-import { checkValidAyahId, meta } from "../src";
+import { checkValidAyahId, meta } from "../src"
 
 describe("checkValidAyahId", () => {
   it("should return true for valid ayah id", () => {
-    expect(checkValidAyahId(1)).toBe(true);
-    expect(checkValidAyahId(meta.numAyas)).toBe(true);
-    expect(checkValidAyahId(Math.floor(meta.numAyas / 2))).toBe(true);
-  });
+    expect(checkValidAyahId(1)).toBe(true)
+    expect(checkValidAyahId(meta.numAyas)).toBe(true)
+    expect(checkValidAyahId(Math.floor(meta.numAyas / 2))).toBe(true)
+  })
 
   it("should throw RangeError for ayah id less than 1", () => {
-    expect(() => checkValidAyahId(0)).toThrow(RangeError);
-    expect(() => checkValidAyahId(-1)).toThrow(RangeError);
-  });
+    expect(() => checkValidAyahId(0)).toThrow(RangeError)
+    expect(() => checkValidAyahId(-1)).toThrow(RangeError)
+  })
 
   it("should throw RangeError for ayah id greater than total number of ayas", () => {
-    expect(() => checkValidAyahId(meta.numAyas + 1)).toThrow(RangeError);
-    expect(() => checkValidAyahId(Number.MAX_SAFE_INTEGER)).toThrow(RangeError);
-  });
+    expect(() => checkValidAyahId(meta.numAyas + 1)).toThrow(RangeError)
+    expect(() => checkValidAyahId(Number.MAX_SAFE_INTEGER)).toThrow(RangeError)
+  })
 
-//   it("should throw RangeError for non-integer ayah id", () => {
-//     expect(() => checkValidAyahId(1.5)).toThrow(RangeError);
-//     expect(() => checkValidAyahId(2.99)).toThrow(RangeError);
-//   });
+  //   it("should throw RangeError for non-integer ayah id", () => {
+  //     expect(() => checkValidAyahId(1.5)).toThrow(RangeError);
+  //     expect(() => checkValidAyahId(2.99)).toThrow(RangeError);
+  //   });
 
 //   it("should throw TypeError for non-number ayah id", () => {
 //     expect(() => checkValidAyahId("1" as any)).toThrow(TypeError);
 //     expect(() => checkValidAyahId(null as any)).toThrow(TypeError);
 //     expect(() => checkValidAyahId(undefined as any)).toThrow(TypeError);
 //   });
-});
+})
diff --git a/tests/checkValidSurah.spec.ts b/tests/checkValidSurah.spec.ts
index 61c6675..0881eb7 100644
--- a/tests/checkValidSurah.spec.ts
+++ b/tests/checkValidSurah.spec.ts
@@ -1,29 +1,29 @@
-import { checkValidSurah, meta } from "../src";
+import { checkValidSurah, meta } from "../src"
 
 describe("checkValidSurah", () => {
   it("should return true for valid surah numbers", () => {
-    expect(checkValidSurah(1)).toBe(true);
-    expect(checkValidSurah(meta.numSuras)).toBe(true);
-    expect(checkValidSurah(Math.floor(meta.numSuras / 2))).toBe(true);
-  });
+    expect(checkValidSurah(1)).toBe(true)
+    expect(checkValidSurah(meta.numSuras)).toBe(true)
+    expect(checkValidSurah(Math.floor(meta.numSuras / 2))).toBe(true)
+  })
 
   it("should throw RangeError for surah number less than 1", () => {
-    expect(() => checkValidSurah(0)).toThrow(RangeError);
-    expect(() => checkValidSurah(-1)).toThrow(RangeError);
-  });
+    expect(() => checkValidSurah(0)).toThrow(RangeError)
+    expect(() => checkValidSurah(-1)).toThrow(RangeError)
+  })
 
   it("should throw RangeError for surah number greater than total number of surahs", () => {
-    expect(() => checkValidSurah(meta.numSuras + 1)).toThrow(RangeError);
-    expect(() => checkValidSurah(Number.MAX_SAFE_INTEGER)).toThrow(RangeError);
-  });
+    expect(() => checkValidSurah(meta.numSuras + 1)).toThrow(RangeError)
+    expect(() => checkValidSurah(Number.MAX_SAFE_INTEGER)).toThrow(RangeError)
+  })
 
   it("should return false for invalid surah numbers when checkOnly is true", () => {
-    expect(checkValidSurah(0, true)).toBe(false);
-    expect(checkValidSurah(meta.numSuras + 1, true)).toBe(false);
-  });
+    expect(checkValidSurah(0, true)).toBe(false)
+    expect(checkValidSurah(meta.numSuras + 1, true)).toBe(false)
+  })
 
   it("should return true for valid surah numbers when checkOnly is true", () => {
-    expect(checkValidSurah(1, true)).toBe(true);
-    expect(checkValidSurah(meta.numSuras, true)).toBe(true);
-  });
-});
+    expect(checkValidSurah(1, true)).toBe(true)
+    expect(checkValidSurah(meta.numSuras, true)).toBe(true)
+  })
+})
diff --git a/tests/checkValidSurahAyah.spec.ts b/tests/checkValidSurahAyah.spec.ts
index 1fec410..d542850 100644
--- a/tests/checkValidSurahAyah.spec.ts
+++ b/tests/checkValidSurahAyah.spec.ts
@@ -1,34 +1,34 @@
-import { checkValidSurahAyah } from "../src";
+import { checkValidSurahAyah } from "../src"
 
 describe("checkValidSurahAyah", () => {
   it("should return true for valid surah and ayah", () => {
-    expect(checkValidSurahAyah(1, 1)).toBe(true);
-    expect(checkValidSurahAyah(114, 6)).toBe(true);
-  });
+    expect(checkValidSurahAyah(1, 1)).toBe(true)
+    expect(checkValidSurahAyah(114, 6)).toBe(true)
+  })
 
   it("should return false for invalid surah", () => {
-    expect(checkValidSurahAyah(0, 1, true)).toBe(false);
-    expect(checkValidSurahAyah(115, 1, true)).toBe(false);
-  });
+    expect(checkValidSurahAyah(0, 1, true)).toBe(false)
+    expect(checkValidSurahAyah(115, 1, true)).toBe(false)
+  })
 
   it("should return false for invalid ayah when checkOnly is true", () => {
-    expect(checkValidSurahAyah(1, 0, true)).toBe(false);
-    expect(checkValidSurahAyah(1, 8, true)).toBe(false);
-  });
+    expect(checkValidSurahAyah(1, 0, true)).toBe(false)
+    expect(checkValidSurahAyah(1, 8, true)).toBe(false)
+  })
 
   it("should throw RangeError for invalid ayah when checkOnly is false", () => {
-    expect(() => checkValidSurahAyah(1, 0)).toThrow(RangeError);
-    expect(() => checkValidSurahAyah(1, 8)).toThrow(RangeError);
-  });
+    expect(() => checkValidSurahAyah(1, 0)).toThrow(RangeError)
+    expect(() => checkValidSurahAyah(1, 8)).toThrow(RangeError)
+  })
 
   it("should throw RangeError with correct message for invalid ayah", () => {
-    expect(() => checkValidSurahAyah(1, 8)).toThrow("Ayah must be between 1 and 7");
-    expect(() => checkValidSurahAyah(2, 287)).toThrow("Ayah must be between 1 and 286");
-  });
+    expect(() => checkValidSurahAyah(1, 8)).toThrow("Ayah must be between 1 and 7")
+    expect(() => checkValidSurahAyah(2, 287)).toThrow("Ayah must be between 1 and 286")
+  })
 
   it("should handle edge cases", () => {
-    expect(checkValidSurahAyah(1, 7)).toBe(true);
-    expect(checkValidSurahAyah(2, 286)).toBe(true);
-    expect(checkValidSurahAyah(114, 1)).toBe(true);
-  });
-});
+    expect(checkValidSurahAyah(1, 7)).toBe(true)
+    expect(checkValidSurahAyah(2, 286)).toBe(true)
+    expect(checkValidSurahAyah(114, 1)).toBe(true)
+  })
+})
diff --git a/tests/findAyaidBySurah.spec.ts b/tests/findAyaidBySurah.spec.ts
index f4fbda7..c480521 100644
--- a/tests/findAyaidBySurah.spec.ts
+++ b/tests/findAyaidBySurah.spec.ts
@@ -1,45 +1,43 @@
-import { findAyaidBySurah, meta } from "../src";
+import { findAyaidBySurah, meta } from "../src"
 
 describe("findAyaidBySurah", () => {
-
-
-    it("should return correct AyahId for first ayah of first surah", () => {
-        expect(findAyaidBySurah(1, 1)).toEqual(1);
-    });
-
-    it("should return correct AyahId for last ayah of first surah", () => {
-        expect(findAyaidBySurah(1, 7)).toEqual(7);
-    });
-
-    it("should return correct AyahId for first ayah of second surah", () => {
-        expect(findAyaidBySurah(2, 1)).toEqual(8);
-    });
-
-    it("should return correct AyahId for middle of a surah", () => {
-        expect(findAyaidBySurah(3, 60)).toEqual(353);
-    });
-
-    it("should return correct AyahId for last surah", () => {
-        expect(findAyaidBySurah(114, 1)).toEqual(6231);
-    });
-
-    it("should return correct AyahId for last ayah of last surah", () => {
-        expect(findAyaidBySurah(114, 6)).toEqual(6236);
-    });
-
-    it("should handle edge cases", () => {
-        expect(findAyaidBySurah(1, 2)).toEqual(2)
-        expect(findAyaidBySurah(114, 6)).toEqual(meta.numAyas)
-        expect(findAyaidBySurah(9, 51)).toEqual(1286);
-        expect(findAyaidBySurah(9, 1)).toEqual(1236);
-        expect(findAyaidBySurah(10, 50)).toEqual(1414);
-    });
-
-    it("should throw error for invalid surah", () => {
-        expect(() => findAyaidBySurah(115, 1)).toThrow();
-    });
-
-    it("should throw error for invalid ayah", () => {
-        expect(() => findAyaidBySurah(1, 8)).toThrow();
-    });
-});
+  it("should return correct AyahId for first ayah of first surah", () => {
+    expect(findAyaidBySurah(1, 1)).toEqual(1)
+  })
+
+  it("should return correct AyahId for last ayah of first surah", () => {
+    expect(findAyaidBySurah(1, 7)).toEqual(7)
+  })
+
+  it("should return correct AyahId for first ayah of second surah", () => {
+    expect(findAyaidBySurah(2, 1)).toEqual(8)
+  })
+
+  it("should return correct AyahId for middle of a surah", () => {
+    expect(findAyaidBySurah(3, 60)).toEqual(353)
+  })
+
+  it("should return correct AyahId for last surah", () => {
+    expect(findAyaidBySurah(114, 1)).toEqual(6231)
+  })
+
+  it("should return correct AyahId for last ayah of last surah", () => {
+    expect(findAyaidBySurah(114, 6)).toEqual(6236)
+  })
+
+  it("should handle edge cases", () => {
+    expect(findAyaidBySurah(1, 2)).toEqual(2)
+    expect(findAyaidBySurah(114, 6)).toEqual(meta.numAyas)
+    expect(findAyaidBySurah(9, 51)).toEqual(1286)
+    expect(findAyaidBySurah(9, 1)).toEqual(1236)
+    expect(findAyaidBySurah(10, 50)).toEqual(1414)
+  })
+
+  it("should throw error for invalid surah", () => {
+    expect(() => findAyaidBySurah(115, 1)).toThrow()
+  })
+
+  it("should throw error for invalid ayah", () => {
+    expect(() => findAyaidBySurah(1, 8)).toThrow()
+  })
+})
diff --git a/tests/findJuz.spec.ts b/tests/findJuz.spec.ts
index a87f271..ca09a86 100644
--- a/tests/findJuz.spec.ts
+++ b/tests/findJuz.spec.ts
@@ -1,47 +1,46 @@
-import { findJuz } from "../src";
+import { findJuz } from "../src"
 
 describe("findJuz", () => {
-
-    it("basic", () => {
-        expect(findJuz(1, 2)).toEqual(1)
-        expect(findJuz(2, 1)).toEqual(1)
-        expect(findJuz(3, 1)).toEqual(3)
-    })
-
-    it("should return correct juz for first ayah of first surah", () => {
-        expect(findJuz(1, 1)).toEqual(1);
-    });
-
-    it("should return correct juz for first ayah of first surah", () => {
-        expect(findJuz(0, 1, true)).toEqual(1);
-        expect(findJuz(0, 6236, true)).toEqual(30);
-    });
-    it("should return correct juz for last surah", () => {
-        expect(findJuz(114, 1)).toEqual(30);
-    });
-
-    it("should return correct juz for middle of Quran", () => {
-        expect(findJuz(18, 1)).toEqual(15);
-    });
-
-    it("should return correct juz when ayah is not specified", () => {
-        expect(findJuz(2)).toEqual(1);
-    });
-
-    it("should handle juz change within a surah", () => {
-        expect(findJuz(2, 141)).toEqual(1);
-        expect(findJuz(2, 142)).toEqual(2);
-    });
-
-    it("should return correct juz for last ayah of Quran", () => {
-        expect(findJuz(114, 6)).toEqual(30);
-    });
-
-    it("should handle invalid surah numbers", () => {
-        expect(() => findJuz(115, 1)).toThrow();
-    });
-
-    it("should handle invalid ayah numbers", () => {
-        expect(() => findJuz(1, 8)).toThrow();
-    });
-});
+  it("basic", () => {
+    expect(findJuz(1, 2)).toEqual(1)
+    expect(findJuz(2, 1)).toEqual(1)
+    expect(findJuz(3, 1)).toEqual(3)
+  })
+
+  it("should return correct juz for first ayah of first surah", () => {
+    expect(findJuz(1, 1)).toEqual(1)
+  })
+
+  it("should return correct juz for first ayah of first surah", () => {
+    expect(findJuz(0, 1, true)).toEqual(1)
+    expect(findJuz(0, 6236, true)).toEqual(30)
+  })
+  it("should return correct juz for last surah", () => {
+    expect(findJuz(114, 1)).toEqual(30)
+  })
+
+  it("should return correct juz for middle of Quran", () => {
+    expect(findJuz(18, 1)).toEqual(15)
+  })
+
+  it("should return correct juz when ayah is not specified", () => {
+    expect(findJuz(2)).toEqual(1)
+  })
+
+  it("should handle juz change within a surah", () => {
+    expect(findJuz(2, 141)).toEqual(1)
+    expect(findJuz(2, 142)).toEqual(2)
+  })
+
+  it("should return correct juz for last ayah of Quran", () => {
+    expect(findJuz(114, 6)).toEqual(30)
+  })
+
+  it("should handle invalid surah numbers", () => {
+    expect(() => findJuz(115, 1)).toThrow()
+  })
+
+  it("should handle invalid ayah numbers", () => {
+    expect(() => findJuz(1, 8)).toThrow()
+  })
+})
diff --git a/tests/findJuzAndShift.spec.ts b/tests/findJuzAndShift.spec.ts
index 8b966bc..a66e482 100644
--- a/tests/findJuzAndShift.spec.ts
+++ b/tests/findJuzAndShift.spec.ts
@@ -1,112 +1,110 @@
-import { meta } from "../src";
-import { findJuzAndShift } from "../src/findJuzAndShift";
+import { meta } from "../src"
+import { findJuzAndShift } from "../src/findJuzAndShift"
 
 describe("findJuzAndShift", () => {
-
-    it("basic", () => {
-        expect(findJuzAndShift(1, 1)).toEqual({
-            juz: 1,
-            leftAyahId: 1,
-            ayahsBetweenJuzSurah: 0,
-        })
-        expect(findJuzAndShift(1, 1, true)).toEqual({
-            juz: 1,
-            leftAyahId: 1,
-            ayahsBetweenJuzSurah: 0,
-        })
-
-        expect(findJuzAndShift(1, 2)).toEqual({
-            juz: 1,
-            leftAyahId: 1,
-            ayahsBetweenJuzSurah: 0,
-        })
-
-        expect(findJuzAndShift(2, 141)).toEqual({
-            juz: 1,
-            leftAyahId: 1,
-            ayahsBetweenJuzSurah: 7,
-        })
-
-        expect(findJuzAndShift(2, 142)).toEqual({
-            juz: 2,
-            leftAyahId: 149,
-            ayahsBetweenJuzSurah: -141,
-        })
-        expect(findJuzAndShift(2, 143)).toEqual({
-            juz: 2,
-            leftAyahId: 149,
-            ayahsBetweenJuzSurah: -141,
-        })
-        expect(findJuzAndShift(2, 150)).toEqual({
-            juz: 2,
-            leftAyahId: 149,
-            ayahsBetweenJuzSurah: -141,
-        })
-
-        expect(findJuzAndShift(2, 252)).toEqual({
-            juz: 2,
-            leftAyahId: 149,
-            ayahsBetweenJuzSurah: -141,
-        })
-
-        expect(findJuzAndShift(2, 253)).toEqual({
-            juz: 3,
-            leftAyahId: 260,
-            ayahsBetweenJuzSurah: -252,
-        })
-
-        expect(findJuzAndShift(3, 1)).toEqual({
-            juz: 3,
-            leftAyahId: 260,
-            ayahsBetweenJuzSurah: 34,
-        })
+  it("basic", () => {
+    expect(findJuzAndShift(1, 1)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 0
+    })
+    expect(findJuzAndShift(1, 1, true)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 0
     })
 
-    it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in surah mode", () => {
-        const result = findJuzAndShift(2, 1);
-        expect(result).toEqual({
-            juz: 1,
-            leftAyahId: 1,
-            ayahsBetweenJuzSurah: 7,
-        });
-    });
-
-    it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in ayah mode", () => {
+    expect(findJuzAndShift(1, 2)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 0
+    })
 
-        expect(findJuzAndShift(0, 8, true)).toEqual({
-            juz: 1,
-            leftAyahId: 1,
-            ayahsBetweenJuzSurah: 7,
-        });
+    expect(findJuzAndShift(2, 141)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
 
-        expect(findJuzAndShift(0, 10, true)).toEqual({
-            juz: 1,
-            leftAyahId: 1,
-            ayahsBetweenJuzSurah: 7,
-        });
-    });
+    expect(findJuzAndShift(2, 142)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
+    expect(findJuzAndShift(2, 143)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
+    expect(findJuzAndShift(2, 150)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
 
-    it("should handle edge case at the end of a juz", () => {
-        const result = findJuzAndShift(2, 141);
-        expect(result.juz).toBe(1);
-    });
+    expect(findJuzAndShift(2, 252)).toEqual({
+      juz: 2,
+      leftAyahId: 149,
+      ayahsBetweenJuzSurah: -141
+    })
 
-    it("should handle edge case at the start of a juz", () => {
-        const result = findJuzAndShift(2, 142);
-        expect(result.juz).toBe(2);
-    });
+    expect(findJuzAndShift(2, 253)).toEqual({
+      juz: 3,
+      leftAyahId: 260,
+      ayahsBetweenJuzSurah: -252
+    })
 
-    it("should throw RangeError for invalid surah in surah mode", () => {
-        expect(() => findJuzAndShift(115, 1)).toThrow(RangeError);
-    });
+    expect(findJuzAndShift(3, 1)).toEqual({
+      juz: 3,
+      leftAyahId: 260,
+      ayahsBetweenJuzSurah: 34
+    })
+  })
+
+  it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in surah mode", () => {
+    const result = findJuzAndShift(2, 1)
+    expect(result).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
+  })
 
-    it("should throw RangeError for invalid ayah in ayah mode", () => {
-        expect(() => findJuzAndShift(0, meta.numAyas + 1, true)).toThrow(RangeError);
-    });
+  it("should return correct juz, leftAyahId, and ayahsBetweenJuzSurah for valid input in ayah mode", () => {
+    expect(findJuzAndShift(0, 8, true)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
 
-    it("should ignore surah number if yahmmode is true", () => {
-        const result = findJuzAndShift(-1, 1, true);
-        expect(result.juz).toBeGreaterThan(0);
-        expect(result.juz).toBeLessThanOrEqual(30);
-    });
-});
+    expect(findJuzAndShift(0, 10, true)).toEqual({
+      juz: 1,
+      leftAyahId: 1,
+      ayahsBetweenJuzSurah: 7
+    })
+  })
+
+  it("should handle edge case at the end of a juz", () => {
+    const result = findJuzAndShift(2, 141)
+    expect(result.juz).toBe(1)
+  })
+
+  it("should handle edge case at the start of a juz", () => {
+    const result = findJuzAndShift(2, 142)
+    expect(result.juz).toBe(2)
+  })
+
+  it("should throw RangeError for invalid surah in surah mode", () => {
+    expect(() => findJuzAndShift(115, 1)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError for invalid ayah in ayah mode", () => {
+    expect(() => findJuzAndShift(0, meta.numAyas + 1, true)).toThrow(RangeError)
+  })
+
+  it("should ignore surah number if yahmmode is true", () => {
+    const result = findJuzAndShift(-1, 1, true)
+    expect(result.juz).toBeGreaterThan(0)
+    expect(result.juz).toBeLessThanOrEqual(30)
+  })
+})
diff --git a/tests/findJuzByAyaid.spec.ts b/tests/findJuzByAyaid.spec.ts
index ce587d8..2b2ed42 100644
--- a/tests/findJuzByAyaid.spec.ts
+++ b/tests/findJuzByAyaid.spec.ts
@@ -1,36 +1,36 @@
-import { findJuzByAyaid } from "../src";
+import { findJuzByAyaid } from "../src"
 
 describe("findJuzByAyaid", () => {
-    it("basic", () => {
-        expect(findJuzByAyaid(2)).toEqual(1)
-        expect(findJuzByAyaid(100)).toEqual(1)
-        expect(findJuzByAyaid(200)).toEqual(2)
-      })
+  it("basic", () => {
+    expect(findJuzByAyaid(2)).toEqual(1)
+    expect(findJuzByAyaid(100)).toEqual(1)
+    expect(findJuzByAyaid(200)).toEqual(2)
+  })
 
   it("should return correct Juz for first ayah", () => {
-    expect(findJuzByAyaid(1)).toBe(1);
-  });
+    expect(findJuzByAyaid(1)).toBe(1)
+  })
 
   it("should return correct Juz for last ayah", () => {
-    expect(findJuzByAyaid(6236)).toBe(30);
-  });
+    expect(findJuzByAyaid(6236)).toBe(30)
+  })
 
   it("should return correct Juz for ayah at Juz boundary", () => {
-    expect(findJuzByAyaid(148)).toBe(1);
-    expect(findJuzByAyaid(149)).toBe(2);
-  });
+    expect(findJuzByAyaid(148)).toBe(1)
+    expect(findJuzByAyaid(149)).toBe(2)
+  })
 
   it("should return correct Juz for middle ayah", () => {
-    expect(findJuzByAyaid(3000)).toBe(19);
-  });
+    expect(findJuzByAyaid(3000)).toBe(19)
+  })
 
   it("should throw error for invalid ayah id", () => {
-    expect(() => findJuzByAyaid(0)).toThrow();
-    expect(() => findJuzByAyaid(6237)).toThrow();
-  });
+    expect(() => findJuzByAyaid(0)).toThrow()
+    expect(() => findJuzByAyaid(6237)).toThrow()
+  })
 
   it("should handle edge cases", () => {
-    expect(findJuzByAyaid(2)).toBe(1);
-    expect(findJuzByAyaid(6235)).toBe(30);
-  });
-});
+    expect(findJuzByAyaid(2)).toBe(1)
+    expect(findJuzByAyaid(6235)).toBe(30)
+  })
+})
diff --git a/tests/findJuzHizb.spec.ts b/tests/findJuzHizb.spec.ts
index d16fd16..d7ed548 100644
--- a/tests/findJuzHizb.spec.ts
+++ b/tests/findJuzHizb.spec.ts
@@ -1,29 +1,29 @@
-import { findJuzHizb } from "../src";
+import { findJuzHizb } from "../src"
 
 describe("findJuzHizb", () => {
-    it("should return correct JuzHizb for first surah and ayah", () => {
-        expect(findJuzHizb(1, 1)).toEqual({ juz: 1, hizb: 1, id: 1 });
-    });
+  it("should return correct JuzHizb for first surah and ayah", () => {
+    expect(findJuzHizb(1, 1)).toEqual({ juz: 1, hizb: 1, id: 1 })
+  })
 
-    it("should return correct JuzHizb for last surah and ayah", () => {
-        expect(findJuzHizb(114, 6)).toEqual({ juz: 30, hizb: 8, id: 240  });
-    });
+  it("should return correct JuzHizb for last surah and ayah", () => {
+    expect(findJuzHizb(114, 6)).toEqual({ juz: 30, hizb: 8, id: 240 })
+  })
 
-    it("should return correct JuzHizb for a middle surah and ayah", () => {
-        expect(findJuzHizb(18, 1)).toEqual({ juz: 15, hizb: 5, id: 117  });
-    });
+  it("should return correct JuzHizb for a middle surah and ayah", () => {
+    expect(findJuzHizb(18, 1)).toEqual({ juz: 15, hizb: 5, id: 117 })
+  })
 
-    it("should handle ayahMode correctly", () => {
-        expect(findJuzHizb(2, 286, true)).toEqual({ juz: 3, hizb: 3 , id: 19 });
-    });
+  it("should handle ayahMode correctly", () => {
+    expect(findJuzHizb(2, 286, true)).toEqual({ juz: 3, hizb: 3, id: 19 })
+  })
 
-    it("should throw an error for invalid surah number", () => {
-        expect(() => findJuzHizb(0)).toThrow();
-        expect(() => findJuzHizb(115)).toThrow();
-    });
+  it("should throw an error for invalid surah number", () => {
+    expect(() => findJuzHizb(0)).toThrow()
+    expect(() => findJuzHizb(115)).toThrow()
+  })
 
-    it("should handle edge cases", () => {
-        expect(findJuzHizb(2, 1)).toEqual({ juz: 1, hizb: 1 , id: 1 });
-        expect(findJuzHizb(2, 142)).toEqual({ juz: 2, hizb: 1, id: 9  });
-    });
-});
+  it("should handle edge cases", () => {
+    expect(findJuzHizb(2, 1)).toEqual({ juz: 1, hizb: 1, id: 1 })
+    expect(findJuzHizb(2, 142)).toEqual({ juz: 2, hizb: 1, id: 9 })
+  })
+})
diff --git a/tests/findJuzHizbByAyaid.spec.ts b/tests/findJuzHizbByAyaid.spec.ts
index 0e8c68c..825d7e0 100644
--- a/tests/findJuzHizbByAyaid.spec.ts
+++ b/tests/findJuzHizbByAyaid.spec.ts
@@ -1,50 +1,49 @@
-import { expect, vi } from 'vitest';
-import { findJuzHizbByAyaid, meta } from '../src';
-import * as module from "../src/checkValidAyahId";
+import { expect, vi } from "vitest"
+import { findJuzHizbByAyaid, meta } from "../src"
+import * as module from "../src/validation"
 
 describe("findJuzHizbByAyaid", () => {
-    beforeEach(() => {
-        vi.clearAllMocks();
-    });
-
-    it("basic", () => {
-        expect(findJuzHizbByAyaid(1)).toEqual({ hizb: 1, id: 1, juz: 1 })
-        expect(findJuzHizbByAyaid(32)).toEqual({ hizb: 1, id: 1, juz: 1 })
-        expect(findJuzHizbByAyaid(33)).toEqual({ hizb: 2, id: 2, juz: 1 })
-        expect(findJuzHizbByAyaid(148)).toEqual({ hizb: 8, id: 8, juz: 1 })
-        expect(findJuzHizbByAyaid(149)).toEqual({ hizb: 1, id: 9, juz: 2 })
-        expect(findJuzHizbByAyaid(meta.numAyas)).toEqual({
-            hizb: 8,
-            id: 240,
-            juz: 30,
-        })
+  beforeEach(() => {
+    vi.clearAllMocks()
+  })
+
+  it("basic", () => {
+    expect(findJuzHizbByAyaid(1)).toEqual({ hizb: 1, id: 1, juz: 1 })
+    expect(findJuzHizbByAyaid(32)).toEqual({ hizb: 1, id: 1, juz: 1 })
+    expect(findJuzHizbByAyaid(33)).toEqual({ hizb: 2, id: 2, juz: 1 })
+    expect(findJuzHizbByAyaid(148)).toEqual({ hizb: 8, id: 8, juz: 1 })
+    expect(findJuzHizbByAyaid(149)).toEqual({ hizb: 1, id: 9, juz: 2 })
+    expect(findJuzHizbByAyaid(meta.numAyas)).toEqual({
+      hizb: 8,
+      id: 240,
+      juz: 30
     })
-
-    it("should return correct JuzHizb for first ayah", () => {
-        const result = findJuzHizbByAyaid(1);
-        expect(result).toEqual({ juz: 1, hizb: 1, id: 1 });
-    });
-
-    it("should return correct JuzHizb for last ayah", () => {
-        const result = findJuzHizbByAyaid(6236);
-        expect(result).toEqual({ juz: 30, hizb: 8, id: 240 });
-    });
-
-    it("should return correct JuzHizb for middle ayah", () => {
-        const result = findJuzHizbByAyaid(3000);
-        expect(result).toEqual({ juz: 19, hizb: 4, id: 148 });
-    });
-
-    it("should call checkValidAyahId with correct argument", () => {
-        const spy = vi.spyOn(module, "checkValidAyahId");
-
-        findJuzHizbByAyaid(100);
-        expect(spy).toHaveBeenCalledWith(100);
-    });
-
-    it("should handle edge case when ayaId is at hizb boundary", () => {
-
-        const result = findJuzHizbByAyaid(148);
-        expect(result).toEqual({ juz: 1, hizb: 8, id: 8 });
-    });
-});
+  })
+
+  it("should return correct JuzHizb for first ayah", () => {
+    const result = findJuzHizbByAyaid(1)
+    expect(result).toEqual({ juz: 1, hizb: 1, id: 1 })
+  })
+
+  it("should return correct JuzHizb for last ayah", () => {
+    const result = findJuzHizbByAyaid(6236)
+    expect(result).toEqual({ juz: 30, hizb: 8, id: 240 })
+  })
+
+  it("should return correct JuzHizb for middle ayah", () => {
+    const result = findJuzHizbByAyaid(3000)
+    expect(result).toEqual({ juz: 19, hizb: 4, id: 148 })
+  })
+
+  it("should call checkValidAyahId with correct argument", () => {
+    const spy = vi.spyOn(module, "checkValidAyahId")
+
+    findJuzHizbByAyaid(100)
+    expect(spy).toHaveBeenCalledWith(100)
+  })
+
+  it("should handle edge case when ayaId is at hizb boundary", () => {
+    const result = findJuzHizbByAyaid(148)
+    expect(result).toEqual({ juz: 1, hizb: 8, id: 8 })
+  })
+})
diff --git a/tests/findJuzMetaBySurah.spec.ts b/tests/findJuzMetaBySurah.spec.ts
index fd16f9f..fca4bae 100644
--- a/tests/findJuzMetaBySurah.spec.ts
+++ b/tests/findJuzMetaBySurah.spec.ts
@@ -1,72 +1,72 @@
-import { expect, vi } from 'vitest';
-import { findJuzMetaBySurah } from '../src/findJuzMetaBySurah';
-import * as findSurahByAyaidModule from '../src/findSurahByAyaid';
+import { expect, vi } from "vitest"
+import { findJuzMetaBySurah } from "../src/findJuzMetaBySurah"
+import * as findSurahByAyaidModule from "../src/findSurahByAyaid"
 
-describe('findJuzMetaBySurah', () => {
+describe("findJuzMetaBySurah", () => {
   beforeEach(() => {
-    vi.clearAllMocks();
-  });
+    vi.clearAllMocks()
+  })
 
-  it('should return correct JuzMeta for first surah', () => {
-    const result = findJuzMetaBySurah(1);
+  it("should return correct JuzMeta for first surah", () => {
+    const result = findJuzMetaBySurah(1)
     expect(result).toEqual({
       leftjuz: 1,
       ayahsBetweenJuzSurah: 0,
       rightJuz: 1,
       leftAyahId: 1,
-      rightAyahId: 149,
-    });
-  });
+      rightAyahId: 149
+    })
+  })
 
-  it('should return correct JuzMeta for a surah spanning multiple juz', () => {
-    const result = findJuzMetaBySurah(2);
+  it("should return correct JuzMeta for a surah spanning multiple juz", () => {
+    const result = findJuzMetaBySurah(2)
     expect(result).toEqual({
       leftjuz: 1,
       ayahsBetweenJuzSurah: 7,
       rightJuz: 3,
       leftAyahId: 1,
-      rightAyahId: 386,
-    });
-  });
+      rightAyahId: 386
+    })
+  })
 
-  it('should handle a surah entirely within one juz', () => {
-    const result = findJuzMetaBySurah(114);
+  it("should handle a surah entirely within one juz", () => {
+    const result = findJuzMetaBySurah(114)
     expect(result).toEqual({
       leftjuz: 30,
       ayahsBetweenJuzSurah: 558,
       rightJuz: 30,
       leftAyahId: 5673,
-      rightAyahId: 6237,
-    });
-  });
+      rightAyahId: 6237
+    })
+  })
 
-  it('should return correct JuzMeta when ayah is specified', () => {
-    const result = findJuzMetaBySurah(2, 150);
+  it("should return correct JuzMeta when ayah is specified", () => {
+    const result = findJuzMetaBySurah(2, 150)
     expect(result).toEqual({
       leftjuz: 2,
       ayahsBetweenJuzSurah: -141,
       rightJuz: 3,
       leftAyahId: 149,
-      rightAyahId: 386,
-    });
-  });
+      rightAyahId: 386
+    })
+  })
 
-  it('should handle edge case when ayah is at juz boundary', () => {
-    const result = findJuzMetaBySurah(2, 141);
+  it("should handle edge case when ayah is at juz boundary", () => {
+    const result = findJuzMetaBySurah(2, 141)
     expect(result).toEqual({
       leftjuz: 1,
       ayahsBetweenJuzSurah: 7,
       rightJuz: 3,
       leftAyahId: 1,
-      rightAyahId: 386,
-    });
-  });
+      rightAyahId: 386
+    })
+  })
 
-  it('should use mocked findSurahByAyaid', () => {
-    const mockFindSurahByAyaid = vi.spyOn(findSurahByAyaidModule, 'findSurahByAyaid');
-    mockFindSurahByAyaid.mockReturnValue([2, 1]);
-    const result = findJuzMetaBySurah(2);
-    expect(mockFindSurahByAyaid).toHaveBeenCalled();
-    expect(result.rightJuz).toBe(30);
-  });
-});
+  it("should use mocked findSurahByAyaid", () => {
+    const mockFindSurahByAyaid = vi.spyOn(findSurahByAyaidModule, "findSurahByAyaid")
+    mockFindSurahByAyaid.mockReturnValue([2, 1])
+    const result = findJuzMetaBySurah(2)
+    expect(mockFindSurahByAyaid).toHaveBeenCalled()
+    expect(result.rightJuz).toBe(30)
+  })
+})
diff --git a/tests/findPage.spec.ts b/tests/findPage.spec.ts
index 9f6c8df..7b673ab 100644
--- a/tests/findPage.spec.ts
+++ b/tests/findPage.spec.ts
@@ -1,54 +1,53 @@
-import { expect, vi } from 'vitest';
-import { findPage } from '../src';
-import * as module from "../src/checkValidAyahId";
-import * as surahModule from "../src/checkValidSurah";
-import * as ayahIdModule from "../src/findAyaidBySurah";
+import { expect, vi } from "vitest"
+import { findPage } from "../src"
+import * as ayahIdModule from "../src/findAyaidBySurah"
+import * as module from "../src/validation"
 
 describe("findPage", () => {
-    beforeEach(() => {
-        vi.clearAllMocks();
-    });
-
-    it("basic", () => {
-        expect(findPage(1, 1)).toEqual(1)
-        expect(findPage(1, 2)).toEqual(1)
-        expect(findPage(2, 1)).toEqual(2)
-        expect(findPage(114, 1)).toEqual(604)
-    })
-
-    it("should return correct page for first surah and ayah", () => {
-        const result = findPage(1, 1);
-        expect(result).toBe(1);
-    });
-
-    it("should return correct page for last surah and ayah", () => {
-        const result = findPage(114, 6);
-        expect(result).toBe(604);
-    });
-
-    it("should return correct page for middle surah and ayah", () => {
-        const result = findPage(56, 50);
-        expect(result).toBe(535);
-    });
-
-    it("should handle ayahMode correctly", () => {
-        const spy = vi.spyOn(module, "checkValidAyahId");
-        const result = findPage(0, 100, true);
-        expect(spy).toHaveBeenCalledWith(100);
-        expect(result).toBe(14);
-    });
-
-    it("should call checkValidSurah and findAyaidBySurah when not in ayahMode", () => {
-        const surahSpy = vi.spyOn(surahModule, "checkValidSurah");
-        const ayahIdSpy = vi.spyOn(ayahIdModule, "findAyaidBySurah");
-        const result = findPage(5, 10);
-        expect(surahSpy).toHaveBeenCalledWith(5);
-        expect(ayahIdSpy).toHaveBeenCalledWith(5, 10);
-        expect(result).toBe(109);
-    });
-
-    it("should handle edge case when ayahId is at page boundary", () => {
-        const result = findPage(2, 141);
-        expect(result).toBe(21);
-    });
-});
+  beforeEach(() => {
+    vi.clearAllMocks()
+  })
+
+  it("basic", () => {
+    expect(findPage(1, 1)).toEqual(1)
+    expect(findPage(1, 2)).toEqual(1)
+    expect(findPage(2, 1)).toEqual(2)
+    expect(findPage(114, 1)).toEqual(604)
+  })
+
+  it("should return correct page for first surah and ayah", () => {
+    const result = findPage(1, 1)
+    expect(result).toBe(1)
+  })
+
+  it("should return correct page for last surah and ayah", () => {
+    const result = findPage(114, 6)
+    expect(result).toBe(604)
+  })
+
+  it("should return correct page for middle surah and ayah", () => {
+    const result = findPage(56, 50)
+    expect(result).toBe(535)
+  })
+
+  it("should handle ayahMode correctly", () => {
+    const spy = vi.spyOn(module, "checkValidAyahId")
+    const result = findPage(0, 100, true)
+    expect(spy).toHaveBeenCalledWith(100)
+    expect(result).toBe(14)
+  })
+
+  it("should call checkValidSurah and findAyaidBySurah when not in ayahMode", () => {
+    const surahSpy = vi.spyOn(module, "checkValidSurah")
+    const ayahIdSpy = vi.spyOn(ayahIdModule, "findAyaidBySurah")
+    const result = findPage(5, 10)
+    expect(surahSpy).toHaveBeenCalledWith(5)
+    expect(ayahIdSpy).toHaveBeenCalledWith(5, 10)
+    expect(result).toBe(109)
+  })
+
+  it("should handle edge case when ayahId is at page boundary", () => {
+    const result = findPage(2, 141)
+    expect(result).toBe(21)
+  })
+})
diff --git a/tests/findRangeAroundAyah.spec.ts b/tests/findRangeAroundAyah.spec.ts
index 1b1b060..6e677ec 100644
--- a/tests/findRangeAroundAyah.spec.ts
+++ b/tests/findRangeAroundAyah.spec.ts
@@ -1,47 +1,47 @@
-import { findRangeAroundAyah, meta } from "../src";
+import { findRangeAroundAyah, meta } from "../src"
 
 describe("findRangeAroundAyah", () => {
   it("should return correct range for juz mode", () => {
-    expect(findRangeAroundAyah(2, 142, "juz")).toEqual([149, 259]);
-  });
+    expect(findRangeAroundAyah(2, 142, "juz")).toEqual([149, 259])
+  })
 
   it("should return correct range for surah mode", () => {
-    expect(findRangeAroundAyah(3, 60, "surah")).toEqual([294, 493]);
-  });
+    expect(findRangeAroundAyah(3, 60, "surah")).toEqual([294, 493])
+  })
 
   it("should return correct range for ayah mode", () => {
-    expect(findRangeAroundAyah(4, 20, "ayah")).toEqual([513, 513]);
-  });
+    expect(findRangeAroundAyah(4, 20, "ayah")).toEqual([513, 513])
+  })
 
   it("should return correct range for page mode", () => {
-    expect(findRangeAroundAyah(5, 30, "page")).toEqual([693, 700]);
-    expect(findRangeAroundAyah(1, 1, "page")).toEqual([1, 7]);
-    expect(findRangeAroundAyah(114, 4, "page")).toEqual([6222, 6236]);
-  });
+    expect(findRangeAroundAyah(5, 30, "page")).toEqual([693, 700])
+    expect(findRangeAroundAyah(1, 1, "page")).toEqual([1, 7])
+    expect(findRangeAroundAyah(114, 4, "page")).toEqual([6222, 6236])
+  })
 
   it("should return full Quran range for all mode", () => {
-    expect(findRangeAroundAyah(1, 1, "all")).toEqual([1, meta.numAyas]);
-    expect(findRangeAroundAyah(2, 21, "all")).toEqual([1, meta.numAyas]);
-    expect(findRangeAroundAyah(114, 6, "all")).toEqual([1, meta.numAyas]);
-  });
+    expect(findRangeAroundAyah(1, 1, "all")).toEqual([1, meta.numAyas])
+    expect(findRangeAroundAyah(2, 21, "all")).toEqual([1, meta.numAyas])
+    expect(findRangeAroundAyah(114, 6, "all")).toEqual([1, meta.numAyas])
+  })
 
   it("should handle ayahMode correctly", () => {
-    expect(findRangeAroundAyah(1, 500, "ayah", true)).toEqual([500, 500]);
-  });
+    expect(findRangeAroundAyah(1, 500, "ayah", true)).toEqual([500, 500])
+  })
 
   it("should throw error for invalid surah in non-ayahMode", () => {
-    expect(() => findRangeAroundAyah(115, 1, "surah")).toThrow();
-  });
+    expect(() => findRangeAroundAyah(115, 1, "surah")).toThrow()
+  })
 
   it("should throw error for invalid ayah in non-ayahMode", () => {
-    expect(() => findRangeAroundAyah(1, 8, "ayah")).toThrow();
-  });
+    expect(() => findRangeAroundAyah(1, 8, "ayah")).toThrow()
+  })
 
   it("should return correct range for first ayah of first surah", () => {
-    expect(findRangeAroundAyah(1, 1, "juz")).toEqual([1, 148]);
-  });
+    expect(findRangeAroundAyah(1, 1, "juz")).toEqual([1, 148])
+  })
 
   it("should return correct range for last ayah of last surah", () => {
-    expect(findRangeAroundAyah(114, 6, "surah")).toEqual([6231, 6236]);
-  });
-});
+    expect(findRangeAroundAyah(114, 6, "surah")).toEqual([6231, 6236])
+  })
+})
diff --git a/tests/findSurahByAyaid.spec.ts b/tests/findSurahByAyaid.spec.ts
index e595d3c..578c549 100644
--- a/tests/findSurahByAyaid.spec.ts
+++ b/tests/findSurahByAyaid.spec.ts
@@ -1,40 +1,39 @@
-import { meta } from "../src";
-import { findSurahByAyaid } from "../src/findSurahByAyaid";
+import { meta } from "../src"
+import { findSurahByAyaid } from "../src/findSurahByAyaid"
 
 describe("findSurahByAyaid", () => {
+  it("surah of ayaid 1", () => {
+    expect(findSurahByAyaid(1)).toEqual(expect.arrayContaining([1, 1]))
+    expect(findSurahByAyaid(2)).toEqual(expect.arrayContaining([1, 2]))
+    expect(findSurahByAyaid(7)).toEqual(expect.arrayContaining([1, 7]))
+    expect(findSurahByAyaid(8)).toEqual(expect.arrayContaining([2, 1]))
+    expect(findSurahByAyaid(6231)).toEqual(expect.arrayContaining([114, 1]))
+    expect(findSurahByAyaid(6230)).toEqual(expect.arrayContaining([113, 5]))
+    expect(findSurahByAyaid(meta.numAyas)).toEqual(
+      expect.arrayContaining([114, 6])
+    )
+  })
 
-    it("surah of ayaid 1", () => {
-        expect(findSurahByAyaid(1)).toEqual(expect.arrayContaining([1, 1]))
-        expect(findSurahByAyaid(2)).toEqual(expect.arrayContaining([1, 2]))
-        expect(findSurahByAyaid(7)).toEqual(expect.arrayContaining([1, 7]))
-        expect(findSurahByAyaid(8)).toEqual(expect.arrayContaining([2, 1]))
-        expect(findSurahByAyaid(6231)).toEqual(expect.arrayContaining([114, 1]))
-        expect(findSurahByAyaid(6230)).toEqual(expect.arrayContaining([113, 5]))
-        expect(findSurahByAyaid(meta.numAyas)).toEqual(
-            expect.arrayContaining([114, 6])
-        )
-    })
+  it("should return correct surah and ayah for first ayah", () => {
+    expect(findSurahByAyaid(1)).toEqual([1, 1])
+  })
 
-    it("should return correct surah and ayah for first ayah", () => {
-        expect(findSurahByAyaid(1)).toEqual([1, 1]);
-    });
+  it("should return correct surah and ayah for last ayah", () => {
+    expect(findSurahByAyaid(meta.numAyas)).toEqual([114, 6])
+  })
 
-    it("should return correct surah and ayah for last ayah", () => {
-        expect(findSurahByAyaid(meta.numAyas)).toEqual([114, 6]);
-    });
+  it("should return correct surah and ayah for middle ayah", () => {
+    const middleAyah = Math.floor(meta.numAyas / 2)
+    expect(findSurahByAyaid(middleAyah)).toEqual([26, 186])
+  })
 
-    it("should return correct surah and ayah for middle ayah", () => {
-        const middleAyah = Math.floor(meta.numAyas / 2);
-        expect(findSurahByAyaid(middleAyah)).toEqual([26, 186]);
-    });
+  it("should return correct surah and ayah for ayah at surah boundary", () => {
+    expect(findSurahByAyaid(7)).toEqual([1, 7])
+    expect(findSurahByAyaid(8)).toEqual([2, 1])
+  })
 
-    it("should return correct surah and ayah for ayah at surah boundary", () => {
-        expect(findSurahByAyaid(7)).toEqual([1, 7]);
-        expect(findSurahByAyaid(8)).toEqual([2, 1]);
-    });
-
-    it("should throw RangeError for invalid ayah id", () => {
-        expect(() => findSurahByAyaid(0)).toThrow(RangeError);
-        expect(() => findSurahByAyaid(meta.numAyas + 1)).toThrow(RangeError);
-    });
-});
+  it("should throw RangeError for invalid ayah id", () => {
+    expect(() => findSurahByAyaid(0)).toThrow(RangeError)
+    expect(() => findSurahByAyaid(meta.numAyas + 1)).toThrow(RangeError)
+  })
+})
diff --git a/tests/getAyaCountinSura.spec.ts b/tests/getAyaCountinSura.spec.ts
index fa8a2e0..6bdea52 100644
--- a/tests/getAyaCountinSura.spec.ts
+++ b/tests/getAyaCountinSura.spec.ts
@@ -1,28 +1,28 @@
-import { getAyaCountinSura } from "../src";
+import { getAyaCountinSura } from "../src"
 
 describe("getAyaCountinSura", () => {
   it("should return correct aya count for first surah", () => {
-    expect(getAyaCountinSura(1)).toBe(7);
-  });
+    expect(getAyaCountinSura(1)).toBe(7)
+  })
 
   it("should return correct aya count for last surah", () => {
-    expect(getAyaCountinSura(114)).toBe(6);
-  });
+    expect(getAyaCountinSura(114)).toBe(6)
+  })
 
   it("should return correct aya count for a middle surah", () => {
-    expect(getAyaCountinSura(56)).toBe(96);
-  });
+    expect(getAyaCountinSura(56)).toBe(96)
+  })
 
   it("should return correct aya count for the longest surah", () => {
-    expect(getAyaCountinSura(2)).toBe(286);
-  });
+    expect(getAyaCountinSura(2)).toBe(286)
+  })
 
   it("should return correct aya count for the shortest surah", () => {
-    expect(getAyaCountinSura(108)).toBe(3);
-  });
+    expect(getAyaCountinSura(108)).toBe(3)
+  })
 
   it("should throw an error for invalid surah number", () => {
-    expect(() => getAyaCountinSura(0)).toThrow();
-    expect(() => getAyaCountinSura(115)).toThrow();
-  });
-});
+    expect(() => getAyaCountinSura(0)).toThrow()
+    expect(() => getAyaCountinSura(115)).toThrow()
+  })
+})
diff --git a/tests/getSurahMeta.spec.ts b/tests/getSurahMeta.spec.ts
index 54ae1f0..a5c48a8 100644
--- a/tests/getSurahMeta.spec.ts
+++ b/tests/getSurahMeta.spec.ts
@@ -1,27 +1,27 @@
-import { getSurahMeta } from "../src/getSurahMeta";
-import { SuraList } from "../src/lists/surahList";
+import { getSurahMeta } from "../src/getSurahMeta"
+import { SuraList } from "../src/lists/surahList"
 
 describe("getSurahMeta", () => {
   it("should return correct metadata for first surah", () => {
-    const result = getSurahMeta(1);
-    expect(result).toEqual(SuraList[1]);
-  });
+    const result = getSurahMeta(1)
+    expect(result).toEqual(SuraList[1])
+  })
 
   it("should return correct metadata for last surah", () => {
-    const result = getSurahMeta(114);
-    expect(result).toEqual(SuraList[114]);
-  });
+    const result = getSurahMeta(114)
+    expect(result).toEqual(SuraList[114])
+  })
 
   it("should return correct metadata for a middle surah", () => {
-    const result = getSurahMeta(57);
-    expect(result).toEqual(SuraList[57]);
-  });
+    const result = getSurahMeta(57)
+    expect(result).toEqual(SuraList[57])
+  })
 
   it("should throw an error for surah number 0", () => {
-    expect(() => getSurahMeta(0)).toThrow();
-  });
+    expect(() => getSurahMeta(0)).toThrow()
+  })
 
   it("should throw an error for surah number 115", () => {
-    expect(() => getSurahMeta(115)).toThrow();
-  });
-});
+    expect(() => getSurahMeta(115)).toThrow()
+  })
+})
diff --git a/tests/isAyahJuzFirst.spec.ts b/tests/isAyahJuzFirst.spec.ts
index 0406200..ca7dec5 100644
--- a/tests/isAyahJuzFirst.spec.ts
+++ b/tests/isAyahJuzFirst.spec.ts
@@ -1,48 +1,47 @@
-import { isAyahJuzFirst } from "../src/isAyahJuzFirst";
+import { isAyahJuzFirst } from "../src/isAyahJuzFirst"
 
 describe("isAyahJuzFirst", () => {
-
-    it("basic", () => {
-        expect(isAyahJuzFirst(1, 1)).toEqual(1)
-        expect(isAyahJuzFirst(-1, 1, true)).toEqual(1)
-        expect(isAyahJuzFirst(2, 142)).toEqual(2)
-        expect(isAyahJuzFirst(-1, 149, true)).toEqual(2)
-
-        expect(isAyahJuzFirst(2, 1)).toEqual(-3)
-        expect(isAyahJuzFirst(114, 1)).toEqual(-32)
-        // expect(isAyahJuzFirst(1, 114)).toEqual(-3)
-    })
-
-    it("should return correct Juz for the first ayah of a Juz", () => {
-        expect(isAyahJuzFirst(2, 142)).toBe(2);
-        expect(isAyahJuzFirst(4, 1)).toBeLessThan(0);
-        expect(isAyahJuzFirst(6, 111)).toBe(8);
-    });
-
-    it("should return correct Juz for non-first ayah of a Juz", () => {
-        expect(isAyahJuzFirst(2, 143)).toBeLessThan(0);
-        expect(isAyahJuzFirst(4, 2)).toBeLessThan(0);
-        expect(isAyahJuzFirst(6, 112)).toBeLessThan(0);
-    });
-
-    it("should handle ayahMode correctly", () => {
-        expect(isAyahJuzFirst(0, 2142, true)).toBeLessThan(0);
-        expect(isAyahJuzFirst(0, 4001, true)).toBeLessThan(0);
-        expect(isAyahJuzFirst(0, 5673, true)).toBe(30);
-    });
-
-    it("should throw an error for invalid surah", () => {
-        expect(() => isAyahJuzFirst(0, 1)).toThrow();
-        expect(() => isAyahJuzFirst(115, 1)).toThrow();
-    });
-
-    it("should throw an error for invalid ayah", () => {
-        expect(() => isAyahJuzFirst(1, 0)).toThrow();
-        expect(() => isAyahJuzFirst(1, 8)).toThrow();
-    });
-
-    it("should handle edge cases", () => {
-        expect(isAyahJuzFirst(1, 1)).toBe(1);
-        expect(isAyahJuzFirst(114, 6)).toBeLessThan(0);
-    });
-});
+  it("basic", () => {
+    expect(isAyahJuzFirst(1, 1)).toEqual(1)
+    expect(isAyahJuzFirst(-1, 1, true)).toEqual(1)
+    expect(isAyahJuzFirst(2, 142)).toEqual(2)
+    expect(isAyahJuzFirst(-1, 149, true)).toEqual(2)
+
+    expect(isAyahJuzFirst(2, 1)).toEqual(-3)
+    expect(isAyahJuzFirst(114, 1)).toEqual(-32)
+    // expect(isAyahJuzFirst(1, 114)).toEqual(-3)
+  })
+
+  it("should return correct Juz for the first ayah of a Juz", () => {
+    expect(isAyahJuzFirst(2, 142)).toBe(2)
+    expect(isAyahJuzFirst(4, 1)).toBeLessThan(0)
+    expect(isAyahJuzFirst(6, 111)).toBe(8)
+  })
+
+  it("should return correct Juz for non-first ayah of a Juz", () => {
+    expect(isAyahJuzFirst(2, 143)).toBeLessThan(0)
+    expect(isAyahJuzFirst(4, 2)).toBeLessThan(0)
+    expect(isAyahJuzFirst(6, 112)).toBeLessThan(0)
+  })
+
+  it("should handle ayahMode correctly", () => {
+    expect(isAyahJuzFirst(0, 2142, true)).toBeLessThan(0)
+    expect(isAyahJuzFirst(0, 4001, true)).toBeLessThan(0)
+    expect(isAyahJuzFirst(0, 5673, true)).toBe(30)
+  })
+
+  it("should throw an error for invalid surah", () => {
+    expect(() => isAyahJuzFirst(0, 1)).toThrow()
+    expect(() => isAyahJuzFirst(115, 1)).toThrow()
+  })
+
+  it("should throw an error for invalid ayah", () => {
+    expect(() => isAyahJuzFirst(1, 0)).toThrow()
+    expect(() => isAyahJuzFirst(1, 8)).toThrow()
+  })
+
+  it("should handle edge cases", () => {
+    expect(isAyahJuzFirst(1, 1)).toBe(1)
+    expect(isAyahJuzFirst(114, 6)).toBeLessThan(0)
+  })
+})
diff --git a/tests/isAyahPageFirst.spec.ts b/tests/isAyahPageFirst.spec.ts
index 924a22b..3197908 100644
--- a/tests/isAyahPageFirst.spec.ts
+++ b/tests/isAyahPageFirst.spec.ts
@@ -1,48 +1,47 @@
-import { isAyahPageFirst } from "../src/isAyahPageFirst";
+import { isAyahPageFirst } from "../src/isAyahPageFirst"
 
 describe("isAyahPageFirst", () => {
-
-    it("basic", () => {
-        expect(isAyahPageFirst(1, 1)).toEqual(1)
-        expect(isAyahPageFirst(-1, 1, true)).toEqual(1)
-        expect(isAyahPageFirst(2, 1)).toEqual(2)
-        expect(isAyahPageFirst(2, 142)).toEqual(22)
-        expect(isAyahPageFirst(-1, 149, true)).toEqual(22)
-
-        expect(isAyahPageFirst(2, 2)).toEqual(-4)
-        // expect(isAyahPageFirst(114, 1)).toEqual(-32)
-        // expect(isAyahPageFirst(1, 114)).toEqual(-3)
-    })
-    
-    it("should return correct Juz for valid surah and ayah in ayah mode", () => {
-        const result = isAyahPageFirst(1, 1, true);
-        expect(result).toBeDefined();
-        expect(typeof result).toBe("number");
-    });
-
-    it("should return correct Juz for valid surah and ayah in non-ayah mode", () => {
-        const result = isAyahPageFirst(1, 1);
-        expect(result).toBeDefined();
-        expect(typeof result).toBe("number");
-    });
-
-    it("should handle edge case with last surah and ayah", () => {
-        const result = isAyahPageFirst(114, 6);
-        expect(result).toBeDefined();
-        expect(typeof result).toBe("number");
-    });
-
-    it("should throw error for invalid surah in non-ayah mode", () => {
-        expect(() => isAyahPageFirst(115, 1)).toThrow();
-    });
-
-    it("should throw error for invalid ayah in ayah mode", () => {
-        expect(() => isAyahPageFirst(1, 0, true)).toThrow();
-    });
-
-    it("should handle middle surah and ayah", () => {
-        const result = isAyahPageFirst(50, 20);
-        expect(result).toBeDefined();
-        expect(typeof result).toBe("number");
-    });
-});
+  it("basic", () => {
+    expect(isAyahPageFirst(1, 1)).toEqual(1)
+    expect(isAyahPageFirst(-1, 1, true)).toEqual(1)
+    expect(isAyahPageFirst(2, 1)).toEqual(2)
+    expect(isAyahPageFirst(2, 142)).toEqual(22)
+    expect(isAyahPageFirst(-1, 149, true)).toEqual(22)
+
+    expect(isAyahPageFirst(2, 2)).toEqual(-4)
+    // expect(isAyahPageFirst(114, 1)).toEqual(-32)
+    // expect(isAyahPageFirst(1, 114)).toEqual(-3)
+  })
+
+  it("should return correct Juz for valid surah and ayah in ayah mode", () => {
+    const result = isAyahPageFirst(1, 1, true)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+
+  it("should return correct Juz for valid surah and ayah in non-ayah mode", () => {
+    const result = isAyahPageFirst(1, 1)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+
+  it("should handle edge case with last surah and ayah", () => {
+    const result = isAyahPageFirst(114, 6)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+
+  it("should throw error for invalid surah in non-ayah mode", () => {
+    expect(() => isAyahPageFirst(115, 1)).toThrow()
+  })
+
+  it("should throw error for invalid ayah in ayah mode", () => {
+    expect(() => isAyahPageFirst(1, 0, true)).toThrow()
+  })
+
+  it("should handle middle surah and ayah", () => {
+    const result = isAyahPageFirst(50, 20)
+    expect(result).toBeDefined()
+    expect(typeof result).toBe("number")
+  })
+})
diff --git a/tests/nextAyah.spec.ts b/tests/nextAyah.spec.ts
index 2a97057..570aa6b 100644
--- a/tests/nextAyah.spec.ts
+++ b/tests/nextAyah.spec.ts
@@ -1,33 +1,32 @@
-import { meta, nextAyah } from "../src";
+import { meta, nextAyah } from "../src"
 
 describe("nextAyah", () => {
+  it("should return the next ayah within the same surah", () => {
+    expect(nextAyah(1, 1)).toEqual(expect.arrayContaining([1, 2]))
+    expect(nextAyah(2, 285)).toEqual(expect.arrayContaining([2, 286]))
+  })
 
-    it("should return the next ayah within the same surah", () => {
-        expect(nextAyah(1, 1)).toEqual(expect.arrayContaining([1, 2]));
-        expect(nextAyah(2, 285)).toEqual(expect.arrayContaining([2, 286]));
-    });
+  it("should return the first ayah of the next surah when at the end of a surah", () => {
+    expect(nextAyah(1, 7)).toEqual(expect.arrayContaining([2, 1]))
+    expect(nextAyah(113, 5)).toEqual(expect.arrayContaining([114, 1]))
+  })
 
-    it("should return the first ayah of the next surah when at the end of a surah", () => {
-        expect(nextAyah(1, 7)).toEqual(expect.arrayContaining([2, 1]));
-        expect(nextAyah(113, 5)).toEqual(expect.arrayContaining([114, 1]));
-    });
+  it("should wrap around to the first ayah of the first surah when at the end of the Quran", () => {
+    expect(nextAyah(114, 6)).toEqual(expect.arrayContaining([1, 1]))
+  })
 
-    it("should wrap around to the first ayah of the first surah when at the end of the Quran", () => {
-        expect(nextAyah(114, 6)).toEqual(expect.arrayContaining([1, 1]));
-    });
+  it("should throw RangeError for invalid surah", () => {
+    expect(() => nextAyah(0, 1)).toThrow(RangeError)
+    expect(() => nextAyah(115, 1)).toThrow(RangeError)
+  })
 
-    it("should throw RangeError for invalid surah", () => {
-        expect(() => nextAyah(0, 1)).toThrow(RangeError);
-        expect(() => nextAyah(115, 1)).toThrow(RangeError);
-    });
+  it("should throw RangeError with correct message for invalid surah", () => {
+    expect(() => nextAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+    expect(() => nextAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+  })
 
-    it("should throw RangeError with correct message for invalid surah", () => {
-        expect(() => nextAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
-        expect(() => nextAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
-    });
-
-    it("should handle edge cases", () => {
-        expect(nextAyah(9, 127)).toEqual(expect.arrayContaining([9, 128]));
-        expect(nextAyah(2, 286)).toEqual(expect.arrayContaining([3, 1]));
-    });
-});
+  it("should handle edge cases", () => {
+    expect(nextAyah(9, 127)).toEqual(expect.arrayContaining([9, 128]))
+    expect(nextAyah(2, 286)).toEqual(expect.arrayContaining([3, 1]))
+  })
+})
diff --git a/tests/pageMeta.spec.ts b/tests/pageMeta.spec.ts
index 5db975b..f894bb0 100644
--- a/tests/pageMeta.spec.ts
+++ b/tests/pageMeta.spec.ts
@@ -1,32 +1,32 @@
-import { meta, pageMeta } from "../src";
+import { meta, pageMeta } from "../src"
 
 describe("pageMeta", () => {
   it("should return correct metadata for the first page", () => {
-    const result = pageMeta(1);
-    expect(result.pageNum).toBe(1);
-    expect(result.first).toEqual([1, 1]);
-    expect(result.last).toEqual([1, 7]);
-  });
+    const result = pageMeta(1)
+    expect(result.pageNum).toBe(1)
+    expect(result.first).toEqual([1, 1])
+    expect(result.last).toEqual([1, 7])
+  })
 
   it("should return correct metadata for the last page", () => {
-    const result = pageMeta(meta.numPages);
-    expect(result.pageNum).toBe(meta.numPages);
-    expect(result.first).toEqual([112, 1]);
-    expect(result.last).toEqual([114, 6]);
-  });
+    const result = pageMeta(meta.numPages)
+    expect(result.pageNum).toBe(meta.numPages)
+    expect(result.first).toEqual([112, 1])
+    expect(result.last).toEqual([114, 6])
+  })
 
   it("should return correct metadata for a middle page", () => {
-    const result = pageMeta(300);
-    expect(result.pageNum).toBe(300);
-    expect(result.first).toEqual([18, 54]);
-    expect(result.last).toEqual([18, 61]);
-  });
+    const result = pageMeta(300)
+    expect(result.pageNum).toBe(300)
+    expect(result.first).toEqual([18, 54])
+    expect(result.last).toEqual([18, 61])
+  })
 
   it("should throw RangeError for page number below 1", () => {
-    expect(() => pageMeta(0)).toThrow(RangeError);
-  });
+    expect(() => pageMeta(0)).toThrow(RangeError)
+  })
 
   it("should throw RangeError for page number above numPages", () => {
-    expect(() => pageMeta(meta.numPages + 1)).toThrow(RangeError);
-  });
-});
+    expect(() => pageMeta(meta.numPages + 1)).toThrow(RangeError)
+  })
+})
diff --git a/tests/prevAyah.spec.ts b/tests/prevAyah.spec.ts
index f1becfe..d88c259 100644
--- a/tests/prevAyah.spec.ts
+++ b/tests/prevAyah.spec.ts
@@ -1,39 +1,38 @@
-import { meta } from "../src";
-import { prevAyah } from "../src/prevAyah";
+import { meta } from "../src"
+import { prevAyah } from "../src/prevAyah"
 
 describe("prevAyah", () => {
-
-    it("basic", () => {
-        expect(prevAyah(1, 6)).toEqual(expect.arrayContaining([1, 5]))
-        expect(prevAyah(113, 1)).toEqual(expect.arrayContaining([112, 4]))
-    })
-
-    it("should return the previous ayah within the same surah", () => {
-        expect(prevAyah(1, 2)).toEqual(expect.arrayContaining([1, 1]));
-        expect(prevAyah(2, 286)).toEqual(expect.arrayContaining([2, 285]));
-    });
-
-    it("should return the last ayah of the previous surah when at the beginning of a surah", () => {
-        expect(prevAyah(2, 1)).toEqual(expect.arrayContaining([1, 7]));
-        expect(prevAyah(114, 1)).toEqual(expect.arrayContaining([113, 5]));
-    });
-
-    it("should wrap around to the last ayah of the last surah when at the beginning of the Quran", () => {
-        expect(prevAyah(1, 1)).toEqual(expect.arrayContaining([114, 6]));
-    });
-
-    it("should throw RangeError for invalid surah", () => {
-        expect(() => prevAyah(0, 1)).toThrow(RangeError);
-        expect(() => prevAyah(115, 1)).toThrow(RangeError);
-    });
-
-    it("should throw RangeError with correct message for invalid surah", () => {
-        expect(() => prevAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
-        expect(() => prevAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`);
-    });
-
-    it("should handle edge cases", () => {
-        expect(prevAyah(9, 128)).toEqual(expect.arrayContaining([9, 127]));
-        expect(prevAyah(3, 1)).toEqual(expect.arrayContaining([2, 286]));
-    });
-});
+  it("basic", () => {
+    expect(prevAyah(1, 6)).toEqual(expect.arrayContaining([1, 5]))
+    expect(prevAyah(113, 1)).toEqual(expect.arrayContaining([112, 4]))
+  })
+
+  it("should return the previous ayah within the same surah", () => {
+    expect(prevAyah(1, 2)).toEqual(expect.arrayContaining([1, 1]))
+    expect(prevAyah(2, 286)).toEqual(expect.arrayContaining([2, 285]))
+  })
+
+  it("should return the last ayah of the previous surah when at the beginning of a surah", () => {
+    expect(prevAyah(2, 1)).toEqual(expect.arrayContaining([1, 7]))
+    expect(prevAyah(114, 1)).toEqual(expect.arrayContaining([113, 5]))
+  })
+
+  it("should wrap around to the last ayah of the last surah when at the beginning of the Quran", () => {
+    expect(prevAyah(1, 1)).toEqual(expect.arrayContaining([114, 6]))
+  })
+
+  it("should throw RangeError for invalid surah", () => {
+    expect(() => prevAyah(0, 1)).toThrow(RangeError)
+    expect(() => prevAyah(115, 1)).toThrow(RangeError)
+  })
+
+  it("should throw RangeError with correct message for invalid surah", () => {
+    expect(() => prevAyah(0, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+    expect(() => prevAyah(115, 1)).toThrow(`Surah must be between 1 and ${meta.numSuras}`)
+  })
+
+  it("should handle edge cases", () => {
+    expect(prevAyah(9, 128)).toEqual(expect.arrayContaining([9, 127]))
+    expect(prevAyah(3, 1)).toEqual(expect.arrayContaining([2, 286]))
+  })
+})
diff --git a/tests/quran-data.spec.ts b/tests/quran-data.spec.ts
index 739145d..b2f3877 100644
--- a/tests/quran-data.spec.ts
+++ b/tests/quran-data.spec.ts
@@ -42,9 +42,9 @@ console.log("pageMeta 604", pageMeta(604))
 console.log("pmeta", pageMeta(1))
 // console.log("pmeta", pageMetaOld(1))
 
-let f = (i: AyahId) =>
+const f = (i: AyahId) =>
   expect(findAyaidBySurah(...findSurahByAyaid(i))).toEqual(i)
-let xf = (i: Surah, j: AyahNo) =>
+const xf = (i: Surah, j: AyahNo) =>
   expect(findSurahByAyaid(findAyaidBySurah(i, j))).toEqual([i, j])
 
 describe("crossTest", () => {
diff --git a/tests/tsconfig.json b/tests/tsconfig.json
new file mode 100644
index 0000000..b2ae4bf
--- /dev/null
+++ b/tests/tsconfig.json
@@ -0,0 +1,8 @@
+{
+  "extends":"../tsconfig.json",
+  "compilerOptions": {
+   
+    "types": ["vitest/globals"],
+  },
+  "include": ["../tests"]
+}
\ No newline at end of file

From b3faf1256069167179c74bad6d41e6aa528ae655 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 15:14:50 +0100
Subject: [PATCH 06/20] full refactor of the library

---
 src/ayaStringSplitter.ts   | 10 ++++----
 src/checkValidAyahId.ts    | 14 -----------
 src/checkValidSurah.ts     | 18 --------------
 src/checkValidSurahAyah.ts | 22 -----------------
 src/const.ts               |  2 +-
 src/findAyaidBySurah.ts    | 12 +++++-----
 src/findJuz.ts             | 13 +++++-----
 src/findJuzAndShift.ts     | 36 +++++++++++++---------------
 src/findJuzByAyaid.ts      | 11 ++++-----
 src/findJuzHizb.ts         | 12 +++++-----
 src/findJuzHizbByAyaid.ts  | 22 +++++++++--------
 src/findJuzMetaBySurah.ts  | 35 +++++++++++++++------------
 src/findPage.ts            | 14 +++++------
 src/findRangeAroundAyah.ts | 35 +++++++++++++--------------
 src/findSurahByAyaid.ts    | 12 +++++-----
 src/getAyaCountinSura.ts   |  6 ++---
 src/getSurahMeta.ts        | 11 ++++-----
 src/i18n/sura.en.ts        |  2 +-
 src/i18n/sura.ru.ts        |  2 +-
 src/index.ts               | 28 +++++++---------------
 src/isAyahJuzFirst.ts      | 15 ++++++------
 src/isAyahPageFirst.ts     | 16 ++++++-------
 src/lists/hizbList.ts      |  4 ++--
 src/lists/juzList.ts       |  8 +++----
 src/lists/manzilList.ts    |  8 ++++---
 src/lists/pageList.ts      |  2 +-
 src/lists/rukuList.ts      |  3 ++-
 src/lists/sajdaList.ts     | 16 ++++++-------
 src/lists/surahList.ts     |  2 +-
 src/nextAyah.ts            | 14 +++++------
 src/pageMeta.ts            | 19 +++++++--------
 src/prevAyah.ts            | 16 ++++++-------
 src/types.ts               |  2 +-
 src/utils.ts               | 38 +++++++++++++++--------------
 src/validation.ts          | 49 ++++++++++++++++++++++++++++++++++++++
 35 files changed, 257 insertions(+), 272 deletions(-)
 delete mode 100644 src/checkValidAyahId.ts
 delete mode 100644 src/checkValidSurah.ts
 delete mode 100644 src/checkValidSurahAyah.ts
 create mode 100644 src/validation.ts

diff --git a/src/ayaStringSplitter.ts b/src/ayaStringSplitter.ts
index d180d9d..025efdf 100644
--- a/src/ayaStringSplitter.ts
+++ b/src/ayaStringSplitter.ts
@@ -1,5 +1,5 @@
-import { checkValidSurahAyah } from "./checkValidSurahAyah"
 import { AyahNo, SurahAyahSegment } from "./types"
+import { checkValidSurahAyah } from "./validation"
 
 /**
  *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
@@ -20,7 +20,7 @@ export function ayaStringSplitter(str: string): SurahAyahSegment {
 
   let ayahs: AyahNo | [AyahNo, AyahNo]
   if (ayahsStr.includes("-")) {
-    ayahs = ayahsStr.split("-").map(a => {
+    ayahs = ayahsStr.split("-").map((a) => {
       const ayah = parseInt(a, 10)
       if (isNaN(ayah) || ayah === 0) {
         throw "Error in ayah " + a
@@ -28,14 +28,14 @@ export function ayaStringSplitter(str: string): SurahAyahSegment {
       return ayah
     }) as [AyahNo, AyahNo]
     if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str
-  } else {
+  }
+  else {
     ayahs = parseInt(ayahsStr, 10)
-    if (isNaN(ayahs)|| ayahs === 0) {
+    if (isNaN(ayahs) || ayahs === 0) {
       throw "Error in data " + str
     }
     checkValidSurahAyah(surah, ayahs)
   }
 
-
   return [surah, ayahs]
 }
diff --git a/src/checkValidAyahId.ts b/src/checkValidAyahId.ts
deleted file mode 100644
index b28d7f0..0000000
--- a/src/checkValidAyahId.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { meta } from "./const";
-import { AyahId } from "./types";
-
-/**
- * Checks if the given Ayah (verse) ID is valid.
- *
- * @param ayaId - The Ayah (verse) ID to check.
- * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
- */
-export function checkValidAyahId(ayaId: AyahId) {
-  if (ayaId < 1 || ayaId > meta.numAyas)
-    throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-  return true;
-}
diff --git a/src/checkValidSurah.ts b/src/checkValidSurah.ts
deleted file mode 100644
index bafdbbb..0000000
--- a/src/checkValidSurah.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { meta } from "./const";
-import { Surah } from "./types";
-
-/**
- * Checks if the given Surah (chapter) number is valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah number is valid, false otherwise.
- */
-
-export function checkValidSurah(surah: Surah, checkOnly = false) {
-  if (surah < 1 || surah > meta.numSuras) {
-    if (checkOnly) return false;
-    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-  }
-  return true;
-}
diff --git a/src/checkValidSurahAyah.ts b/src/checkValidSurahAyah.ts
deleted file mode 100644
index 18e3d68..0000000
--- a/src/checkValidSurahAyah.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { getSurahMeta } from "./getSurahMeta";
-import { AyahNo, Surah } from "./types";
-
-/**
- * Checks if the given Surah and Ayah (verse) numbers are valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param ayah - The Ayah (verse) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah and Ayah numbers are valid, false otherwise.
- */
-export function checkValidSurahAyah(surah: Surah, ayah: AyahNo, checkOnly = false): boolean {
-  if (!checkValidSurah(surah, checkOnly)) return false;
-
-  const [startAyahId, ayahCount] = getSurahMeta(surah);
-  if (ayah < 1 || ayah > ayahCount) {
-    if (checkOnly) return false;
-    throw new RangeError("Ayah must be between 1 and " + ayahCount);
-  }
-  return true;
-}
diff --git a/src/const.ts b/src/const.ts
index 38649be..a92d400 100644
--- a/src/const.ts
+++ b/src/const.ts
@@ -11,5 +11,5 @@ export const meta: Readonly<QuranMeta> = Object.freeze({
   numSuras: 114,
   numPages: 604,
   numJuzs: 30,
-  manzilCount: 7,
+  manzilCount: 7
 })
diff --git a/src/findAyaidBySurah.ts b/src/findAyaidBySurah.ts
index 6b9d97d..4560192 100644
--- a/src/findAyaidBySurah.ts
+++ b/src/findAyaidBySurah.ts
@@ -1,6 +1,6 @@
-import { checkValidSurahAyah } from "./checkValidSurahAyah";
-import { getSurahMeta } from "./getSurahMeta";
-import { AyahId, AyahNo, Surah } from "./types";
+import { getSurahMeta } from "./getSurahMeta"
+import { AyahId, AyahNo, Surah } from "./types"
+import { checkValidSurahAyah } from "./validation"
 
 /**
  * Get the ayah ID for the given surah and ayah number.
@@ -9,7 +9,7 @@ import { AyahId, AyahNo, Surah } from "./types";
  * @returns The ayah ID for the given surah and ayah number.
  */
 export function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId {
-  checkValidSurahAyah(surah, ayah);
-  const [startAyahId] = getSurahMeta(surah);
-  return startAyahId + ayah;
+  checkValidSurahAyah(surah, ayah)
+  const [startAyahId] = getSurahMeta(surah)
+  return startAyahId + ayah
 }
diff --git a/src/findJuz.ts b/src/findJuz.ts
index fe22b35..1ac8168 100644
--- a/src/findJuz.ts
+++ b/src/findJuz.ts
@@ -1,7 +1,7 @@
-import { checkValidSurahAyah } from "./checkValidSurahAyah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-import { AyahId, AyahNo, Juz, Surah } from "./types";
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { checkValidSurahAyah } from "./validation"
 
 /**
  * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
@@ -14,7 +14,8 @@ import { AyahId, AyahNo, Juz, Surah } from "./types";
 export function findJuz(surah: Surah, ayah: AyahNo = 1, ayahMode = false): Juz {
   const ayahId: AyahId = ayahMode
     ? ayah
-    : ((checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah)) as AyahId);
+    : ((checkValidSurahAyah(surah, ayah)
+      && findAyaidBySurah(surah, ayah)) as AyahId)
 
-  return findJuzByAyaid(ayahId);
+  return findJuzByAyaid(ayahId)
 }
diff --git a/src/findJuzAndShift.ts b/src/findJuzAndShift.ts
index c6ad388..99fe12f 100644
--- a/src/findJuzAndShift.ts
+++ b/src/findJuzAndShift.ts
@@ -1,12 +1,10 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { JuzList } from "./lists/juzList";
-import { SuraList } from "./lists/surahList";
-import { AyahId, AyahNo, Juz, Surah } from "./types";
-
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { JuzList } from "./lists/juzList"
+import { SuraList } from "./lists/surahList"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { checkValidAyahId, checkValidSurah } from "./validation"
 
 /**
  * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
@@ -24,21 +22,21 @@ export function findJuzAndShift(
   ayah: AyahNo,
   ayahMode = false
 ): {
-  juz: Juz;
-  leftAyahId: AyahId;
-  ayahsBetweenJuzSurah: number;
-} {
+    juz: Juz
+    leftAyahId: AyahId
+    ayahsBetweenJuzSurah: number
+  } {
   const ayahId: AyahId = ayahMode
     ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
 
-  const juz = findJuzByAyaid(ayahId);
-  const leftAyahId = JuzList[juz];
-  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
-  const [surahStartAyahId] = SuraList[surah];
+  const juz = findJuzByAyaid(ayahId)
+  const leftAyahId = JuzList[juz]
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId)
+  const [surahStartAyahId] = SuraList[surah]
   return {
     juz,
     ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
     leftAyahId
-  };
+  }
 }
diff --git a/src/findJuzByAyaid.ts b/src/findJuzByAyaid.ts
index fafe389..4134fd7 100644
--- a/src/findJuzByAyaid.ts
+++ b/src/findJuzByAyaid.ts
@@ -1,7 +1,6 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { JuzList } from "./lists/juzList";
-import { AyahId, Juz } from "./types";
-
+import { JuzList } from "./lists/juzList"
+import { AyahId, Juz } from "./types"
+import { checkValidAyahId } from "./validation"
 
 /**
  * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
@@ -10,7 +9,7 @@ import { AyahId, Juz } from "./types";
  * @returns The Juz (part) of the Quran that contains the given Ayah ID.
  */
 export function findJuzByAyaid(ayaId: AyahId): Juz {
-  checkValidAyahId(ayaId);
+  checkValidAyahId(ayaId)
 
-  return JuzList.findIndex(x => x > ayaId) - 1;
+  return JuzList.findIndex(x => x > ayaId) - 1
 }
diff --git a/src/findJuzHizb.ts b/src/findJuzHizb.ts
index c5f6333..87f0a12 100644
--- a/src/findJuzHizb.ts
+++ b/src/findJuzHizb.ts
@@ -1,7 +1,7 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
-import { AyahId, AyahNo, JuzHizb, Surah } from "./types";
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid"
+import { AyahId, AyahNo, JuzHizb, Surah } from "./types"
+import { checkValidSurah } from "./validation"
 
 /**
  * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
@@ -18,7 +18,7 @@ export function findJuzHizb(
 ): JuzHizb {
   const ayahId: AyahId = ayahMode
     ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
 
-  return findJuzHizbByAyaid(ayahId);
+  return findJuzHizbByAyaid(ayahId)
 }
diff --git a/src/findJuzHizbByAyaid.ts b/src/findJuzHizbByAyaid.ts
index b8ff84b..3a300ea 100644
--- a/src/findJuzHizbByAyaid.ts
+++ b/src/findJuzHizbByAyaid.ts
@@ -1,8 +1,7 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-import { HizbQuarterList } from "./lists/hizbList";
-import { AyahId, JuzHizb } from "./types";
-
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { HizbQuarterList } from "./lists/hizbList"
+import { AyahId, JuzHizb } from "./types"
+import { checkValidAyahId } from "./validation"
 
 /**
  * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
@@ -11,10 +10,13 @@ import { AyahId, JuzHizb } from "./types";
  * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
  */
 export function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {
-  checkValidAyahId(ayaId);
-
-  const juz = findJuzByAyaid(ayaId);
+  checkValidAyahId(ayaId)
 
-  const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
-  return { juz, hizb: id % 8 || 8, id };
+  const juz = findJuzByAyaid(ayaId)
+  const quarterIndex = HizbQuarterList.findIndex(x => x > ayaId) - 1
+  if (quarterIndex < 0) {
+    throw new Error("Invalid Ayah ID: No corresponding Hizb found.")
+  }
+  const hizb = quarterIndex % 8 || 8
+  return { juz, hizb, id: quarterIndex }
 }
diff --git a/src/findJuzMetaBySurah.ts b/src/findJuzMetaBySurah.ts
index 2445bce..e8f3350 100644
--- a/src/findJuzMetaBySurah.ts
+++ b/src/findJuzMetaBySurah.ts
@@ -1,30 +1,35 @@
-import { meta } from "./const";
-import { findJuzAndShift } from "./findJuzAndShift";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { JuzList } from "./lists/juzList";
-import { AyahNo, Juz, JuzMeta, Surah } from "./types";
+import { meta } from "./const"
+import { findJuzAndShift } from "./findJuzAndShift"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { JuzList } from "./lists/juzList"
+import { AyahNo, Juz, JuzMeta, Surah } from "./types"
 
 /**
  * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
+ * @param suraNumber
+ * @param ayaNumber
  * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
  */
 export function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {
   const {
-    juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId,
-  } = findJuzAndShift(surah, ayah);
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah)
 
-  let rightJuz: Juz = leftjuz;
-  while (rightJuz < meta.numJuzs &&
-    findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-    rightJuz++;
+  let rightJuz: Juz = leftjuz
+  while (
+    rightJuz < meta.numJuzs
+    && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah
+  ) {
+    rightJuz++
+  }
 
   return {
     leftjuz,
     ayahsBetweenJuzSurah,
     rightJuz,
     leftAyahId,
-    rightAyahId: JuzList[rightJuz + 1],
-  };
+    rightAyahId: JuzList[rightJuz + 1]
+  }
 }
diff --git a/src/findPage.ts b/src/findPage.ts
index b9f0054..70f3777 100644
--- a/src/findPage.ts
+++ b/src/findPage.ts
@@ -1,9 +1,7 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { PageList } from "./lists/pageList";
-import { AyahId, AyahNo, Page, Surah } from "./types";
-
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { PageList } from "./lists/pageList"
+import { AyahId, AyahNo, Page, Surah } from "./types"
+import { checkValidAyahId, checkValidSurah } from "./validation"
 
 /**
  * Finds the page number for the given Surah and Ayah number.
@@ -16,7 +14,7 @@ import { AyahId, AyahNo, Page, Surah } from "./types";
 export function findPage(surah: Surah, ayah: AyahNo, ayahMode = false): Page {
   const ayahId: AyahId = ayahMode
     ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
 
-  return PageList.findIndex(x => x > ayahId) - 1;
+  return PageList.findIndex(x => x > ayahId) - 1
 }
diff --git a/src/findRangeAroundAyah.ts b/src/findRangeAroundAyah.ts
index a917a5e..cc2d3e6 100644
--- a/src/findRangeAroundAyah.ts
+++ b/src/findRangeAroundAyah.ts
@@ -1,12 +1,12 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { meta } from "./const";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-import { findPage } from "./findPage";
-import { JuzList } from "./lists/juzList";
-import { PageList } from "./lists/pageList";
-import { SuraList } from "./lists/surahList";
-import { AyahId, AyahNo, Juz, Page, Surah, SurahAyah } from "./types";
+import { meta } from "./const"
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findJuzByAyaid } from "./findJuzByAyaid"
+import { findPage } from "./findPage"
+import { JuzList } from "./lists/juzList"
+import { PageList } from "./lists/pageList"
+import { SuraList } from "./lists/surahList"
+import { AyahId, AyahNo, Juz, Page, Surah, SurahAyah } from "./types"
+import { checkValidSurah } from "./validation"
 
 /**
  * ALternative deprecated method
@@ -32,7 +32,6 @@ import { AyahId, AyahNo, Juz, Page, Surah, SurahAyah } from "./types";
 //   }
 // }
 
-
 /**
  * Find range containing ayah according to the mode
  * @param surah
@@ -48,28 +47,28 @@ export function findRangeAroundAyah(
 ): SurahAyah {
   const ayahId: AyahId = ayahMode
     ? ayah
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
 
   switch (mode) {
     case "juz": {
-      const juz: Juz = findJuzByAyaid(ayahId);
-      return [JuzList[juz], JuzList[juz + 1] - 1];
+      const juz: Juz = findJuzByAyaid(ayahId)
+      return [JuzList[juz], JuzList[juz + 1] - 1]
     }
 
     case "surah": {
-      return [SuraList[surah][0]+1, SuraList[surah+1][0]];
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]]
     }
 
     case "ayah": {
-      return [ayahId, ayahId];
+      return [ayahId, ayahId]
     }
     case "page": {
-      const page: Page = findPage(-1, ayahId, true);
-      return [PageList[page], PageList[page + 1] - 1];
+      const page: Page = findPage(-1, ayahId, true)
+      return [PageList[page], PageList[page + 1] - 1]
     }
 
     case "all":
     default:
-      return [1, meta.numAyas];
+      return [1, meta.numAyas]
   }
 }
diff --git a/src/findSurahByAyaid.ts b/src/findSurahByAyaid.ts
index 3152994..bcad7fd 100644
--- a/src/findSurahByAyaid.ts
+++ b/src/findSurahByAyaid.ts
@@ -1,6 +1,6 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { SuraList } from "./lists/surahList";
-import { AyahId, Surah, SurahAyah } from "./types";
+import { SuraList } from "./lists/surahList"
+import { AyahId, Surah, SurahAyah } from "./types"
+import { checkValidAyahId } from "./validation"
 
 /**
  * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
@@ -9,8 +9,8 @@ import { AyahId, Surah, SurahAyah } from "./types";
  * @returns An array containing the Surah number and the Ayah number within that Surah.
  */
 export function findSurahByAyaid(ayaId: AyahId): SurahAyah {
-  checkValidAyahId(ayaId);
+  checkValidAyahId(ayaId)
 
-  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1;
-  return [suraNum, ayaId - SuraList[suraNum][0]];
+  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1
+  return [suraNum, ayaId - SuraList[suraNum][0]]
 }
diff --git a/src/getAyaCountinSura.ts b/src/getAyaCountinSura.ts
index 137a8c3..969afe5 100644
--- a/src/getAyaCountinSura.ts
+++ b/src/getAyaCountinSura.ts
@@ -1,5 +1,5 @@
-import { getSurahMeta } from "./getSurahMeta";
-import { Surah } from "./types";
+import { getSurahMeta } from "./getSurahMeta"
+import { Surah } from "./types"
 
 /**
  * Get the number of ayahs (verses) in the specified surah.
@@ -7,5 +7,5 @@ import { Surah } from "./types";
  * @returns The number of ayahs in the specified surah.
  */
 export function getAyaCountinSura(surah: Surah): number {
-  return getSurahMeta(surah)[1];
+  return getSurahMeta(surah)[1]
 }
diff --git a/src/getSurahMeta.ts b/src/getSurahMeta.ts
index 6fc215d..2b2f8dc 100644
--- a/src/getSurahMeta.ts
+++ b/src/getSurahMeta.ts
@@ -1,7 +1,6 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { SuraList } from "./lists/surahList";
-import { Surah, SurahMeta } from "./types";
-
+import { SuraList } from "./lists/surahList"
+import { Surah, SurahMeta } from "./types"
+import { checkValidSurah } from "./validation"
 
 /**
  * Gets the metadata for the specified Surah.
@@ -10,6 +9,6 @@ import { Surah, SurahMeta } from "./types";
  * @returns The metadata for the specified Surah.
  */
 export function getSurahMeta(surah: Surah): SurahMeta {
-  checkValidSurah(surah);
-  return SuraList[surah];
+  checkValidSurah(surah)
+  return SuraList[surah]
 }
diff --git a/src/i18n/sura.en.ts b/src/i18n/sura.en.ts
index 036cba0..415e462 100644
--- a/src/i18n/sura.en.ts
+++ b/src/i18n/sura.en.ts
@@ -114,5 +114,5 @@ export const suraNames: (SuraName | [])[] = [
   ["Al-Masad", "The Palm Fibre"],
   ["Al-Ikhlaas", "Sincerity"],
   ["Al-Falaq", "The Dawn"],
-  ["An-Naas", "Mankind"],
+  ["An-Naas", "Mankind"]
 ]
diff --git a/src/i18n/sura.ru.ts b/src/i18n/sura.ru.ts
index 9fe3ad1..8070edf 100644
--- a/src/i18n/sura.ru.ts
+++ b/src/i18n/sura.ru.ts
@@ -114,5 +114,5 @@ export const suraNames: (SuraName | [])[] = [
   ["Аль-Масад", "Пальмовые волокна"],
   ["Аль-Ихляс", "Очищение веры"],
   ["Аль-Фаляк", "Рассвет"],
-  ["Ан-Нас", "Люди"],
+  ["Ан-Нас", "Люди"]
 ]
diff --git a/src/index.ts b/src/index.ts
index afb96a7..6792a4e 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,26 +1,16 @@
 // Quran Meta
 
-// export {
-//   AyahId,
-//   AyahNo, Juz, JuzMeta, Page, PageMeta, Sajda,
-//   Surah, SurahAyah, SurahMeta
-// }
-//export default QuranMeta;
-//------------------ Sura Data ---------------------
+export type {
+  AyahId, AyahNo, Juz, JuzHizb, JuzMeta, Page, PageMeta, Sajda, SajdaType, SuraName, Surah, SurahAyah, SurahAyahSegment, SurahMeta
+} from "./types"
+
+// ------------------ Sura Data ---------------------
 
 export { suraNames as suraNamesEn } from "./i18n/sura.en"
 export { suraNames as suraNamesRu } from "./i18n/sura.ru"
 
-
-//------------------ Ruku Data ---------------------
-// export Ruku  from "~/js/qdata-ruku.json"
-export { RukuList } from "./lists/rukuList"
-
-//export default QuranMeta;
+// export default QuranMeta;
 export { ayaStringSplitter } from "./ayaStringSplitter"
-export { checkValidAyahId } from "./checkValidAyahId"
-export { checkValidSurah } from "./checkValidSurah"
-export { checkValidSurahAyah } from "./checkValidSurahAyah"
 export { meta } from "./const"
 export { findAyaidBySurah } from "./findAyaidBySurah"
 export { findJuz } from "./findJuz"
@@ -40,12 +30,10 @@ export { HizbQuarterList } from "./lists/hizbList"
 export { JuzList } from "./lists/juzList"
 export { ManzilList } from "./lists/manzilList"
 export { PageList } from "./lists/pageList"
+export { RukuList } from "./lists/rukuList"
 export { SajdaList } from "./lists/sajdaList"
 export { SuraList } from "./lists/surahList"
 export { nextAyah } from "./nextAyah"
 export { pageMeta } from "./pageMeta"
 export { prevAyah } from "./prevAyah"
-
-
-
-
+export { checkValidAyahId, checkValidSurah, checkValidSurahAyah } from "./validation"
diff --git a/src/isAyahJuzFirst.ts b/src/isAyahJuzFirst.ts
index a12035d..9f34bba 100644
--- a/src/isAyahJuzFirst.ts
+++ b/src/isAyahJuzFirst.ts
@@ -1,9 +1,8 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { JuzList } from "./lists/juzList";
-import { AyahId, AyahNo, Juz, Surah } from "./types";
-import { binarySearch } from "./utils";
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { JuzList } from "./lists/juzList"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { binarySearch } from "./utils"
+import { checkValidAyahId, checkValidSurah } from "./validation"
 
 /**
  * Returns the Juz (part) number that the given Ayah (verse) belongs to.
@@ -21,8 +20,8 @@ export function isAyahJuzFirst(
 ): Juz {
   const ayahId: AyahId = ayahMode
     ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
 
-  return binarySearch(JuzList, ayahId);
+  return binarySearch(JuzList, ayahId)
   // return JuzList.findIndex((x: AyahId) => x == ayahId)
 }
diff --git a/src/isAyahPageFirst.ts b/src/isAyahPageFirst.ts
index dc895ab..6773ee5 100644
--- a/src/isAyahPageFirst.ts
+++ b/src/isAyahPageFirst.ts
@@ -1,10 +1,8 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { PageList } from "./lists/pageList";
-import { AyahId, AyahNo, Juz, Surah } from "./types";
-import { binarySearch } from "./utils";
-
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { PageList } from "./lists/pageList"
+import { AyahId, AyahNo, Juz, Surah } from "./types"
+import { binarySearch } from "./utils"
+import { checkValidAyahId, checkValidSurah } from "./validation"
 
 /**
  * Determines if the given ayah is the first ayah of a juz.
@@ -21,8 +19,8 @@ export function isAyahPageFirst(
 ): Juz {
   const ayahId: AyahId = ayahMode
     ? ((checkValidAyahId(ayah) && ayah) as AyahId)
-    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId);
+    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)
 
-  return binarySearch(PageList, ayahId);
+  return binarySearch(PageList, ayahId)
   // return PageList.findIndex((x: AyahId) => x == ayahId)
 }
diff --git a/src/lists/hizbList.ts b/src/lists/hizbList.ts
index 9b0939b..efb2e5d 100644
--- a/src/lists/hizbList.ts
+++ b/src/lists/hizbList.ts
@@ -1,6 +1,6 @@
 import { AyahId } from "../types"
 
-//------------------ Hizb Data ---------------------
+// ------------------ Hizb Data ---------------------
 export const HizbQuarterList: AyahId[] = [
   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,
@@ -19,5 +19,5 @@ export const HizbQuarterList: AyahId[] = [
   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,
+  5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237
 ]
diff --git a/src/lists/juzList.ts b/src/lists/juzList.ts
index d98c861..ca11314 100644
--- a/src/lists/juzList.ts
+++ b/src/lists/juzList.ts
@@ -1,8 +1,8 @@
-import { AyahId } from "../types";
+import { AyahId } from "../types"
 
-//------------------ Juz Data ---------------------
+// ------------------ Juz Data ---------------------
 export const JuzList: AyahId[] = [
   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,
-];
+  5105, 5242, 5673, 6237
+]
diff --git a/src/lists/manzilList.ts b/src/lists/manzilList.ts
index fa10a35..bc94e55 100644
--- a/src/lists/manzilList.ts
+++ b/src/lists/manzilList.ts
@@ -1,4 +1,6 @@
-import { AyahId } from "../types";
+import { AyahId } from "../types"
 
-//------------------ Manzil Data ---------------------
-export const ManzilList: AyahId[] = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
+// ------------------ Manzil Data ---------------------
+export const ManzilList: AyahId[] = [
+  0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237
+]
diff --git a/src/lists/pageList.ts b/src/lists/pageList.ts
index 1e4fe14..febe0c1 100644
--- a/src/lists/pageList.ts
+++ b/src/lists/pageList.ts
@@ -45,5 +45,5 @@ export const PageList: AyahId[] = [
   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,
+  6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237
 ]
diff --git a/src/lists/rukuList.ts b/src/lists/rukuList.ts
index b8279e9..e3b46f5 100644
--- a/src/lists/rukuList.ts
+++ b/src/lists/rukuList.ts
@@ -1,5 +1,6 @@
 import { AyahId } from "../types"
 
+// ------------------ Ruku Data ---------------------
 export const RukuList: AyahId[] = [
   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,
@@ -42,5 +43,5 @@ export const RukuList: AyahId[] = [
   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,
+  6217, 6222, 6226, 6231, 6237
 ]
diff --git a/src/lists/sajdaList.ts b/src/lists/sajdaList.ts
index 1bacdad..ed9d853 100644
--- a/src/lists/sajdaList.ts
+++ b/src/lists/sajdaList.ts
@@ -1,15 +1,15 @@
-import { Sajda } from "../types";
+import { Sajda } from "../types"
 
-//------------------ Page Data ---------------------
+// ------------------ Page Data ---------------------
 // code to get starting pages for surahs
 // let res=[];
 // Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
+// while (c[0]>=s)
+// {res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
+// return s
 // },0)
 // export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
+// ------------------ Sajda Data ---------------------
 export const SajdaList: Sajda[] = [
   // [ayaId, type]
   [1160, "recommended"],
@@ -26,5 +26,5 @@ export const SajdaList: Sajda[] = [
   [4256, "obligatory"],
   [4846, "obligatory"],
   [5905, "recommended"],
-  [6125, "obligatory"],
-];
+  [6125, "obligatory"]
+]
diff --git a/src/lists/surahList.ts b/src/lists/surahList.ts
index 32fb1a2..a4595f3 100644
--- a/src/lists/surahList.ts
+++ b/src/lists/surahList.ts
@@ -116,5 +116,5 @@ export const SuraList: SurahMeta[] = [
   [6221, 4, 22, 1, "الإخلاص", true, 604],
   [6225, 5, 20, 1, "الفلق", true, 604],
   [6230, 6, 21, 1, "الناس", true, 604],
-  [6236, 0, -1, -1, "", false, -1],
+  [6236, 0, -1, -1, "", false, -1]
 ]
diff --git a/src/nextAyah.ts b/src/nextAyah.ts
index 021ca1a..253ed69 100644
--- a/src/nextAyah.ts
+++ b/src/nextAyah.ts
@@ -1,7 +1,7 @@
-import { meta } from "./const";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { AyahId, AyahNo, Surah, SurahAyah } from "./types";
+import { meta } from "./const"
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { AyahId, AyahNo, Surah, SurahAyah } from "./types"
 
 /**
  * Get the next ayah for the given surah and ayah number.
@@ -11,8 +11,8 @@ import { AyahId, AyahNo, Surah, SurahAyah } from "./types";
  */
 export function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah {
   if (surah < 1 || surah > meta.numSuras)
-    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
 
-  const ayaid: AyahId = findAyaidBySurah(surah, ayah);
-  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1)
 }
diff --git a/src/pageMeta.ts b/src/pageMeta.ts
index f6318b3..ba79ab2 100644
--- a/src/pageMeta.ts
+++ b/src/pageMeta.ts
@@ -1,8 +1,7 @@
-import { meta } from "./const";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { PageList } from "./lists/pageList";
-import { AyahId, Page, PageMeta } from "./types";
-
+import { meta } from "./const"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { PageList } from "./lists/pageList"
+import { AyahId, Page, PageMeta } from "./types"
 
 /**
  * Retrieves the page metadata for the specified page number.
@@ -14,16 +13,16 @@ import { AyahId, Page, PageMeta } from "./types";
 export function pageMeta(pageNum: Page): PageMeta {
   // todo rename to getPageMeta in next major version
   if (pageNum < 1 || pageNum > meta.numPages)
-    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages)
 
   const [curPage, nextPage]: [AyahId, AyahId] = [
     PageList[pageNum],
-    PageList[pageNum + 1],
-  ];
+    PageList[pageNum + 1]
+  ]
 
   return {
     pageNum,
     first: findSurahByAyaid(curPage),
-    last: [...findSurahByAyaid(nextPage - 1)],
-  };
+    last: [...findSurahByAyaid(nextPage - 1)]
+  }
 }
diff --git a/src/prevAyah.ts b/src/prevAyah.ts
index 2c39975..2e49133 100644
--- a/src/prevAyah.ts
+++ b/src/prevAyah.ts
@@ -1,8 +1,8 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { meta } from "./const";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { AyahId, AyahNo, Surah, SurahAyah } from "./types";
+import { meta } from "./const"
+import { findAyaidBySurah } from "./findAyaidBySurah"
+import { findSurahByAyaid } from "./findSurahByAyaid"
+import { AyahId, AyahNo, Surah, SurahAyah } from "./types"
+import { checkValidSurah } from "./validation"
 
 /**
  * Get the previous ayah for the given surah and ayah number.
@@ -11,8 +11,8 @@ import { AyahId, AyahNo, Surah, SurahAyah } from "./types";
  * @returns The surah and ayah number of the previous ayah.
  */
 export function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah {
-  checkValidSurah(surah);
+  checkValidSurah(surah)
 
-  const ayaid: AyahId = findAyaidBySurah(surah, ayah);
-  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+  const ayaid: AyahId = findAyaidBySurah(surah, ayah)
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1)
 }
diff --git a/src/types.ts b/src/types.ts
index 42f3980..6d7fe49 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -16,7 +16,7 @@ export type PageMeta = {
   first: SurahAyah
   last: SurahAyah
 }
-//[leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinJuz]
+// [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinJuz]
 export type JuzMeta = {
   leftjuz: Juz
   ayahsBetweenJuzSurah: number
diff --git a/src/utils.ts b/src/utils.ts
index 22f14c1..b04b8ce 100644
--- a/src/utils.ts
+++ b/src/utils.ts
@@ -7,22 +7,24 @@
  * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
  */
 export function binarySearch(
-    ar: Array<number>,
-    el: number,
-    compare_fn: (a: number, b: number) => number = (a, b) => a - b
-  ): number {
-    let m = 0
-    let n = ar.length - 1
-    while (m <= n) {
-      const k = (n + m) >> 1
-      const cmp = compare_fn(el, ar[k])
-      if (cmp > 0) {
-        m = k + 1
-      } else if (cmp < 0) {
-        n = k - 1
-      } else {
-        return k
-      }
+  ar: Array<number>,
+  el: number,
+  compare_fn: (a: number, b: number) => number = (a, b) => a - b
+): number {
+  let m = 0
+  let n = ar.length - 1
+  while (m <= n) {
+    const k = (n + m) >> 1
+    const cmp = compare_fn(el, ar[k])
+    if (cmp > 0) {
+      m = k + 1
     }
-    return -m - 1
-  }
\ No newline at end of file
+    else if (cmp < 0) {
+      n = k - 1
+    }
+    else {
+      return k
+    }
+  }
+  return -m - 1
+}
diff --git a/src/validation.ts b/src/validation.ts
new file mode 100644
index 0000000..f93c960
--- /dev/null
+++ b/src/validation.ts
@@ -0,0 +1,49 @@
+import { meta } from "./const"
+import { getAyaCountinSura } from "./getAyaCountinSura"
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+export function checkValidSurah(surah: number, checkOnly = false): boolean {
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras)
+  }
+  return true
+}
+
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+export function checkValidSurahAyah(surah: number, ayah: number, checkOnly = false): boolean {
+  if (!checkValidSurah(surah, checkOnly)) return false
+
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah))
+  }
+  return true
+}
+
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayaId - The Ayah (verse) ID to check.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+export function checkValidAyahId(ayahId: number, checkOnly = false): boolean {
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas)
+  }
+  return true
+}

From 3bd21a5f19294631d3f183f2e310f6fc69946984 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 15:15:07 +0100
Subject: [PATCH 07/20] update examples

---
 examples/{hello.js => hello.cjs}       | 2 +-
 examples/{hello-es.mjs => hello.mjs}   | 4 ++--
 examples/index.html                    | 2 +-
 examples/modern/index.html             | 2 +-
 examples/{sample-cjs.js => sample.cjs} | 4 ++--
 examples/{sample-es.mjs => sample.mjs} | 4 ++--
 6 files changed, 9 insertions(+), 9 deletions(-)
 rename examples/{hello.js => hello.cjs} (77%)
 rename examples/{hello-es.mjs => hello.mjs} (72%)
 rename examples/{sample-cjs.js => sample.cjs} (89%)
 rename examples/{sample-es.mjs => sample.mjs} (86%)

diff --git a/examples/hello.js b/examples/hello.cjs
similarity index 77%
rename from examples/hello.js
rename to examples/hello.cjs
index 744c77e..082c63d 100644
--- a/examples/hello.js
+++ b/examples/hello.cjs
@@ -1,5 +1,5 @@
 // node hello.js
 
-var quranMeta = require("../dist/quran-meta.common.js")
+var quranMeta = require("../dist/index.cjs")
 console.log(" Hello World! ") // => 'Hello World'
 console.log(`There are ${quranMeta.meta.numSuras} suras in the Holy Quran`) // => '3 red apples'); // => '3 red apples'
diff --git a/examples/hello-es.mjs b/examples/hello.mjs
similarity index 72%
rename from examples/hello-es.mjs
rename to examples/hello.mjs
index 3938759..37476ad 100644
--- a/examples/hello-es.mjs
+++ b/examples/hello.mjs
@@ -1,7 +1,7 @@
 // start with
-// node hello-es.mjs
+// node hello.mjs
 
-import { meta } from "../dist/quran-meta.js"
+import { meta } from "../dist/index.mjs"
 console.log("hello")
 //console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
 console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
diff --git a/examples/index.html b/examples/index.html
index a782aed..4b195c5 100644
--- a/examples/index.html
+++ b/examples/index.html
@@ -1,5 +1,5 @@
 <html>
-<script src="../dist/quran-meta.js" type="text/javascript"></script>
+<script src="../dist/index.js" type="text/javascript"></script>
 Once library is included global variable `quranMeta` is exposed:
 <script type="text/javascript">
    console.log("hello")
diff --git a/examples/modern/index.html b/examples/modern/index.html
index 88e37b8..0938aa0 100644
--- a/examples/modern/index.html
+++ b/examples/modern/index.html
@@ -2,7 +2,7 @@
 Once library is included local variable `quranMeta` is exposed inside module script:
 
 <script type="module">
-   import { meta } from "../../dist/quran-meta.esm.js"
+   import { meta } from "../../dist/index.mjs"
    console.log("hello")
    console.log(meta)
    alert(`There are ${meta.numSuras} suras in the Holy Quran`)
diff --git a/examples/sample-cjs.js b/examples/sample.cjs
similarity index 89%
rename from examples/sample-cjs.js
rename to examples/sample.cjs
index 68f9fe8..3d20a2f 100644
--- a/examples/sample-cjs.js
+++ b/examples/sample.cjs
@@ -1,10 +1,10 @@
 /**
  * This example creates  list of [surah,ayah] number pairs in Holy Quran
  */
-// node sample-cjs.js
+// node sample.cjs
 
 // const quranMeta = require("../dist/quran-meta.common.js")
-const quranMeta = require("../lib_cjs/index.js")
+const quranMeta = require("../dist/index.cjs")
 console.log(`There are ${quranMeta.meta.numSuras} suras in the Holy Quran`)
 const res = []
 for (let surah = 1; surah <= quranMeta.meta.numSuras; surah++) {
diff --git a/examples/sample-es.mjs b/examples/sample.mjs
similarity index 86%
rename from examples/sample-es.mjs
rename to examples/sample.mjs
index e4fcdbb..7709082 100644
--- a/examples/sample-es.mjs
+++ b/examples/sample.mjs
@@ -1,9 +1,9 @@
 /**
  * This example creates  list of [surah,ayah] number pairs in Holy Quran
  */
-// node sample-es.mjs
+// node sample.mjs
 
-import { meta, SuraList } from "../dist/quran-meta.js"
+import { meta, SuraList } from "../dist/index.mjs"
 console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
 const res = []
 for (let surah = 1; surah <= meta.numSuras; surah++) {

From 0759936d7106f375b9cf88522cac22cddd47d7ba Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 15:15:36 +0100
Subject: [PATCH 08/20] remove old config

---
 .eslintrc                  | 33 -----------------------
 .jsdoc.json                | 25 ------------------
 .prettierrc.js             |  4 ---
 _config.yml                |  1 -
 config/banner.cjs          |  8 ------
 config/const.mjs           |  2 --
 config/rollup/dist/es.mjs  | 34 ------------------------
 config/rollup/dist/umd.mjs | 54 --------------------------------------
 8 files changed, 161 deletions(-)
 delete mode 100644 .eslintrc
 delete mode 100644 .jsdoc.json
 delete mode 100644 .prettierrc.js
 delete mode 100644 _config.yml
 delete mode 100644 config/banner.cjs
 delete mode 100644 config/const.mjs
 delete mode 100644 config/rollup/dist/es.mjs
 delete mode 100644 config/rollup/dist/umd.mjs

diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index 4d99272..0000000
--- a/.eslintrc
+++ /dev/null
@@ -1,33 +0,0 @@
-{
-  "root": true,
-  "parser": "@typescript-eslint/parser",
-  "plugins": ["@typescript-eslint"],
-  "extends": [
-    "eslint:recommended",
-    "plugin:@typescript-eslint/recommended",
-    "plugin:prettier/recommended"
-  ],
-  "env": {
-    "node": true,
-    "jest": true,
-    "browser": true
-  },
-  "rules": {
-    // "valid-jsdoc": "error",
-    // "semi": ["error", "always"],
-    "no-undef": "error",
-    "no-var": "error",
-    "prefer-const": "error",
-    "no-const-assign": "error",
-    "one-var": ["error", "never"],
-    "sort-imports": "off",
-    "no-control-regex": "off"
-  },
-  "ignorePatterns": [
-    "node_modules/",
-    "dist/",
-    "lib_cjs/",
-    "lib_es/",
-    "exampless/"
-  ]
-}
diff --git a/.jsdoc.json b/.jsdoc.json
deleted file mode 100644
index 009df58..0000000
--- a/.jsdoc.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-  "tags": {
-    "allowUnknownTags": true
-  },
-  "source": {
-    "include": "src/"
-  },
-  "plugins": [
-    "plugins/markdown"
-  ],
-  "opts": {
-    "template": "jsdoc/template",
-    "encoding": "utf8",
-    "destination": "docs/",
-    "recurse": true,
-    "verbose": true
-  },
-  "templates": {
-    "cleverLinks": false,
-    "monospaceLinks": false,
-    "default": {
-      "outputSourceFiles": false
-    }
-  }
-}
\ No newline at end of file
diff --git a/.prettierrc.js b/.prettierrc.js
deleted file mode 100644
index 675bcc0..0000000
--- a/.prettierrc.js
+++ /dev/null
@@ -1,4 +0,0 @@
-module.exports = {
-  semi: false,
-  arrowParens: "avoid",
-}
diff --git a/_config.yml b/_config.yml
deleted file mode 100644
index c419263..0000000
--- a/_config.yml
+++ /dev/null
@@ -1 +0,0 @@
-theme: jekyll-theme-cayman
\ No newline at end of file
diff --git a/config/banner.cjs b/config/banner.cjs
deleted file mode 100644
index 857cb6c..0000000
--- a/config/banner.cjs
+++ /dev/null
@@ -1,8 +0,0 @@
-const pack = require("../package.json")
-
-module.exports = `/*! 
- * Quran Meta library ${pack.version}
- *
- * Released under the MIT license
- */
-`
diff --git a/config/const.mjs b/config/const.mjs
deleted file mode 100644
index c68ae9f..0000000
--- a/config/const.mjs
+++ /dev/null
@@ -1,2 +0,0 @@
-export const SRC = "src"
-export const DIST_UNIVERSAL = "dist"
diff --git a/config/rollup/dist/es.mjs b/config/rollup/dist/es.mjs
deleted file mode 100644
index 8b0da1e..0000000
--- a/config/rollup/dist/es.mjs
+++ /dev/null
@@ -1,34 +0,0 @@
-import typescript from "@rollup/plugin-typescript"
-import { terser } from "rollup-plugin-terser"
-import banner from "../../banner.cjs"
-
-import { DIST_UNIVERSAL as outDir, SRC } from "../../const.mjs"
-
-export default {
-  input: `${SRC}/index.ts`,
-  plugins: [
-    typescript({      
-      removeComments:true,
-      // outDir: `./${outDir}`,
-      module: "ESNext", //"None", "CommonJS", "AMD", "System", "UMD", "ES6", "ES2015" or "ESNext"
-      target: "ESNext", //"ES3"  "ES5" "ES6"/"ES2015" "ES2016" "ES2017" "ES2018" "ES2019" "ES2020" "ESNext"
-    }),
-  ],
-  output: [{
-    file: `${outDir}/quran-meta.esm.browser.js`,
-    // dir: outDir,
-    format: "es",
-    name: "quranMeta",
-    // sourcemap: false,
-    banner: banner,
-  },
-  {
-    file: `${outDir}/quran-meta.esm.browser.min.js`,
-    // dir: outDir,
-    format: "es",
-    name: "quranMeta",
-    // sourcemap: false,
-    banner: banner,
-    plugins: [terser({  output: {comments:false}})],
-  },]
-}
diff --git a/config/rollup/dist/umd.mjs b/config/rollup/dist/umd.mjs
deleted file mode 100644
index fd5c046..0000000
--- a/config/rollup/dist/umd.mjs
+++ /dev/null
@@ -1,54 +0,0 @@
-import typescript from "@rollup/plugin-typescript"
-import { terser } from "rollup-plugin-terser"
-import banner from "../../banner.cjs"
-
-import { DIST_UNIVERSAL as outDir, SRC } from "../../const.mjs"
-
-export default {
-  input: `${SRC}/index.ts`,
-  plugins: [
-    typescript({
-      // declaration: true,
-      // declarationDir: `${outDir}`,
-      sourceMap: true,
-      removeComments:true,
-      module: "ES2015",//"None", "CommonJS", "AMD", "System", "UMD", "ES6", "ES2015" or "ESNext"
-      target: "ES5",//"ES3"  "ES5" "ES6"/"ES2015" "ES2016" "ES2017" "ES2018" "ES2019" "ES2020" "ESNext"
-    }),
-  ],
-  output: [
-    {
-      file: `${outDir}/quran-meta.js`,
-      // dir: `${outDir}`,
-      format: "umd",
-      name: "quranMeta",
-      sourcemap: true,
-      banner: banner,
-    },
-    {
-      file: `${outDir}/quran-meta.common.js`,
-      // dir: `${outDir}`,
-      format: "cjs",// amd,cjs,es,iife,umd,system
-      name: "quranMeta",
-      sourcemap: true,
-      banner: banner,
-    },
-     {
-      file: `${outDir}/quran-meta.esm.js`,
-      // dir: `${outDir}`,
-      format: "es",
-      name: "quranMeta",
-      sourcemap: true,
-      banner: banner,
-    },
-    {
-      file: `${outDir}/quran-meta.min.js`,
-      // dir:`${outDir}`,
-      format: "umd",
-      name: "quranMeta",
-      sourcemap: false,
-      banner: banner,
-      plugins: [terser({  output: {comments:false}})],
-    },    
-  ],
-}

From 50018a387193c1f401cb01a82e96794077d95ea3 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 15:15:51 +0100
Subject: [PATCH 09/20] switch to unbuild

---
 build.config.ts | 53 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 build.config.ts

diff --git a/build.config.ts b/build.config.ts
new file mode 100644
index 0000000..3a00ac5
--- /dev/null
+++ b/build.config.ts
@@ -0,0 +1,53 @@
+import { defineBuildConfig } from "unbuild"
+import pack from "./package.json"
+
+const banner = `/*! 
+ * Quran Meta library ${pack.version}
+ *
+ * Released under the MIT license
+ */
+`
+
+export default defineBuildConfig({
+  declaration: true,
+  rollup: {
+    emitCJS: true,
+    output: {
+      banner: banner
+    }
+  },
+
+  entries: [
+    "./src/index",
+    {
+      builder: "mkdist",
+      input: "./src/",
+      outDir: "./lib_es",
+      format: "esm"
+    },
+    {
+      input: "src/",
+      outDir: "lib_cjs/",
+      format: "cjs",
+      ext: "cjs",
+      declaration: false
+    }
+  ],
+  hooks: {
+    "rollup:options": (ctx, option) => {
+      option.output?.push(
+        {
+        //   file: "dist/index.js",
+          name: "quranMeta",
+          dir: "dist",
+          format: "umd",
+          //   format: "iife",
+          exports: "auto",
+          preferConst: true,
+          externalLiveBindings: false,
+          freeze: false
+        }
+      )
+    }
+  }
+})

From 01b3ec908beb95d503514ba3c96ebd32c119c0dc Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 15:16:10 +0100
Subject: [PATCH 10/20] switch to eslint 9 with flat config

---
 eslint.config.js | 78 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 eslint.config.js

diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 0000000..0d9cb74
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,78 @@
+import jsLint from "@eslint/js"
+import stylistic from "@stylistic/eslint-plugin"
+import globals from "globals"
+import tsLint from "typescript-eslint"
+// const __filename = fileURLToPath(import.meta.url);
+// const __dirname = path.dirname(__filename);
+// const compat = new FlatCompat({
+//     baseDirectory: __dirname,
+//     recommendedConfig: js.configs.recommended,
+//     allConfig: js.configs.all
+// });
+
+export default [
+  // config parsers
+  {
+    files: ["src/*.{js,mjs,cjs,ts,mts,jsx,tsx}"]
+  },
+
+  {
+    files: ["tests/*.{js,mjs,cjs,ts,mts,jsx,tsx}"],
+    languageOptions: {
+      globals: {
+        ...globals.browser,
+        ...globals.node,
+        ...globals.mocha,
+        ...globals.jest
+      }
+    }
+  },
+  // config envs
+  {
+    languageOptions: {
+      globals: {
+        ...globals.browser, ...globals.node
+      }
+    }
+  },
+  // syntax rules
+  jsLint.configs.recommended,
+  ...tsLint.configs.recommended,
+  // code style rules
+  // disable legacy conflict rules about code style
+  stylistic.configs["disable-legacy"],
+  // you can customize or use a preset
+  stylistic.configs.customize({
+    indent: 2,
+    quotes: "double",
+    semi: false,
+    commaDangle: "never"
+  })
+  //     {
+  //     ignores: [
+  //         "**/node_modules/",
+  //         "**/dist/",
+  //         "**/lib_cjs/",
+  //         "**/lib_es/",
+  //         "**/exampless/",
+  //     ],
+  // },
+  // ...compat.extends(
+  //     "eslint:recommended",
+  //     "plugin:@typescript-eslint/recommended",
+  // ), {
+  //     plugins: {
+  //         "@typescript-eslint": typescriptEslint,
+  //     },
+
+  // rules: {
+  //     "no-undef": "error",
+  //     "no-var": "error",
+  //     "prefer-const": "error",
+  //     "no-const-assign": "error",
+  //     "one-var": ["error", "never"],
+  //     "sort-imports": "off",
+  //     "no-control-regex": "off",
+  // },
+  // }
+]

From bfb6e6c7e5abce23d5018defb4f33d1f48dc8a5c Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 15:35:04 +0100
Subject: [PATCH 11/20] full 100% coverage

---
 src/findJuzHizbByAyaid.ts        |  4 +--
 src/validation.ts                |  9 ++++++
 tests/checkValidAyahId.spec.ts   | 52 +++++++++++++++++++++++---------
 tests/checkValidSurah.spec.ts    | 13 ++++++++
 tests/findJuzHizbByAyaid.spec.ts |  7 +++++
 5 files changed, 67 insertions(+), 18 deletions(-)

diff --git a/src/findJuzHizbByAyaid.ts b/src/findJuzHizbByAyaid.ts
index 3a300ea..e38492b 100644
--- a/src/findJuzHizbByAyaid.ts
+++ b/src/findJuzHizbByAyaid.ts
@@ -14,9 +14,7 @@ export function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {
 
   const juz = findJuzByAyaid(ayaId)
   const quarterIndex = HizbQuarterList.findIndex(x => x > ayaId) - 1
-  if (quarterIndex < 0) {
-    throw new Error("Invalid Ayah ID: No corresponding Hizb found.")
-  }
+
   const hizb = quarterIndex % 8 || 8
   return { juz, hizb, id: quarterIndex }
 }
diff --git a/src/validation.ts b/src/validation.ts
index f93c960..0b8c014 100644
--- a/src/validation.ts
+++ b/src/validation.ts
@@ -9,6 +9,11 @@ import { getAyaCountinSura } from "./getAyaCountinSura"
  * @returns True if the Surah number is valid, false otherwise.
  */
 export function checkValidSurah(surah: number, checkOnly = false): boolean {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false
+    throw new TypeError("Ayah ID must be an integer")
+  }
+
   if (surah < 1 || surah > meta.numSuras) {
     if (checkOnly) return false
     throw new RangeError("Surah must be between 1 and " + meta.numSuras)
@@ -41,6 +46,10 @@ export function checkValidSurahAyah(surah: number, ayah: number, checkOnly = fal
  * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
  */
 export function checkValidAyahId(ayahId: number, checkOnly = false): boolean {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false
+    throw new TypeError("Ayah ID must be an integer")
+  }
   if (ayahId < 1 || ayahId > meta.numAyas) {
     if (checkOnly) return false
     throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas)
diff --git a/tests/checkValidAyahId.spec.ts b/tests/checkValidAyahId.spec.ts
index a366320..b0aa7ca 100644
--- a/tests/checkValidAyahId.spec.ts
+++ b/tests/checkValidAyahId.spec.ts
@@ -1,12 +1,6 @@
 import { checkValidAyahId, meta } from "../src"
 
 describe("checkValidAyahId", () => {
-  it("should return true for valid ayah id", () => {
-    expect(checkValidAyahId(1)).toBe(true)
-    expect(checkValidAyahId(meta.numAyas)).toBe(true)
-    expect(checkValidAyahId(Math.floor(meta.numAyas / 2))).toBe(true)
-  })
-
   it("should throw RangeError for ayah id less than 1", () => {
     expect(() => checkValidAyahId(0)).toThrow(RangeError)
     expect(() => checkValidAyahId(-1)).toThrow(RangeError)
@@ -17,14 +11,42 @@ describe("checkValidAyahId", () => {
     expect(() => checkValidAyahId(Number.MAX_SAFE_INTEGER)).toThrow(RangeError)
   })
 
-  //   it("should throw RangeError for non-integer ayah id", () => {
-  //     expect(() => checkValidAyahId(1.5)).toThrow(RangeError);
-  //     expect(() => checkValidAyahId(2.99)).toThrow(RangeError);
-  //   });
+  it("should throw TypeError for non-integer ayah id", () => {
+    expect(() => checkValidAyahId(1.5)).toThrow(TypeError)
+    expect(() => checkValidAyahId(2.99)).toThrow(TypeError)
+    expect(() => checkValidAyahId(Math.PI)).toThrow(TypeError)
+  })
+
+  it("should throw TypeError for NaN", () => {
+    expect(() => checkValidAyahId(NaN)).toThrow(TypeError)
+  })
+
+  it("should throw TypeError for Infinity", () => {
+    expect(() => checkValidAyahId(Infinity)).toThrow(TypeError)
+    expect(() => checkValidAyahId(-Infinity)).toThrow(TypeError)
+  })
+
+  it("should handle checkOnly", () => {
+    expect(checkValidAyahId(1, true)).toBe(true)
+    expect(checkValidAyahId(meta.numAyas, true)).toBe(true)
+    expect(checkValidAyahId(Math.floor(meta.numAyas / 2), true)).toBe(true)
+    expect(checkValidAyahId(0, true)).toBe(false)
+    expect(checkValidAyahId(meta.numAyas + 1, true)).toBe(false)
+    expect(checkValidAyahId(1.5, true)).toBe(false)
+    expect(checkValidAyahId(NaN, true)).toBe(false)
+    expect(checkValidAyahId(Infinity, true)).toBe(false)
+  })
 
-//   it("should throw TypeError for non-number ayah id", () => {
-//     expect(() => checkValidAyahId("1" as any)).toThrow(TypeError);
-//     expect(() => checkValidAyahId(null as any)).toThrow(TypeError);
-//     expect(() => checkValidAyahId(undefined as any)).toThrow(TypeError);
-//   });
+  it("should handle edge cases correctly", () => {
+    expect(checkValidAyahId(1)).toBe(true)
+    expect(checkValidAyahId(meta.numAyas)).toBe(true)
+    expect(() => checkValidAyahId(meta.numAyas + 0.5)).toThrow(TypeError)
+    expect(checkValidAyahId(Math.floor(meta.numAyas / 2))).toBe(true)
+  })
+
+  it("should throw TypeError for non-number ayah id", () => {
+    expect(() => checkValidAyahId("1" as any)).toThrow(TypeError)
+    expect(() => checkValidAyahId(null as any)).toThrow(TypeError)
+    expect(() => checkValidAyahId(undefined as any)).toThrow(TypeError)
+  })
 })
diff --git a/tests/checkValidSurah.spec.ts b/tests/checkValidSurah.spec.ts
index 0881eb7..164edc2 100644
--- a/tests/checkValidSurah.spec.ts
+++ b/tests/checkValidSurah.spec.ts
@@ -19,6 +19,7 @@ describe("checkValidSurah", () => {
 
   it("should return false for invalid surah numbers when checkOnly is true", () => {
     expect(checkValidSurah(0, true)).toBe(false)
+    expect(checkValidSurah(1.9, true)).toBe(false)
     expect(checkValidSurah(meta.numSuras + 1, true)).toBe(false)
   })
 
@@ -26,4 +27,16 @@ describe("checkValidSurah", () => {
     expect(checkValidSurah(1, true)).toBe(true)
     expect(checkValidSurah(meta.numSuras, true)).toBe(true)
   })
+
+  it("should throw TypeError for non-number surah number", () => {
+    expect(() => checkValidSurah("1" as any)).toThrow(TypeError)
+    expect(() => checkValidSurah(null as any)).toThrow(TypeError)
+    expect(() => checkValidSurah(undefined as any)).toThrow(TypeError)
+  })
+
+  it("should throw TypeError for non-integer ayah id", () => {
+    expect(() => checkValidSurah(1.5)).toThrow(TypeError)
+    expect(() => checkValidSurah(2.99)).toThrow(TypeError)
+    expect(() => checkValidSurah(Math.PI)).toThrow(TypeError)
+  })
 })
diff --git a/tests/findJuzHizbByAyaid.spec.ts b/tests/findJuzHizbByAyaid.spec.ts
index 825d7e0..b787d8a 100644
--- a/tests/findJuzHizbByAyaid.spec.ts
+++ b/tests/findJuzHizbByAyaid.spec.ts
@@ -42,6 +42,13 @@ describe("findJuzHizbByAyaid", () => {
     expect(spy).toHaveBeenCalledWith(100)
   })
 
+  describe("findJuzHizbByAyaid error handling", () => {
+    it("should throw an error for invalid Ayah ID", () => {
+      expect(() => findJuzHizbByAyaid(6237)).toThrow()
+      expect(() => findJuzHizbByAyaid(0)).toThrow()
+    })
+  })
+
   it("should handle edge case when ayaId is at hizb boundary", () => {
     const result = findJuzHizbByAyaid(148)
     expect(result).toEqual({ juz: 1, hizb: 8, id: 8 })

From 7ff9baaee85a66d9099133c3db867ac28679aa62 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:01:51 +0100
Subject: [PATCH 12/20] feat: impove tsdoc

---
 typedoc.json | 5 +++++
 1 file changed, 5 insertions(+)
 create mode 100644 typedoc.json

diff --git a/typedoc.json b/typedoc.json
new file mode 100644
index 0000000..63f2cd9
--- /dev/null
+++ b/typedoc.json
@@ -0,0 +1,5 @@
+{
+    // Comments are supported, like tsconfig.json
+    "entryPoints": ["./src/index.ts"],
+    "out": "docs"
+}
\ No newline at end of file

From 53fa239f8d730328ad238707689b766d8b969572 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:03:18 +0100
Subject: [PATCH 13/20] feat: better eslint

---
 eslint.config.js | 83 +++++++++++++++++++-----------------------------
 1 file changed, 33 insertions(+), 50 deletions(-)

diff --git a/eslint.config.js b/eslint.config.js
index 0d9cb74..ea802cb 100644
--- a/eslint.config.js
+++ b/eslint.config.js
@@ -2,39 +2,18 @@ import jsLint from "@eslint/js"
 import stylistic from "@stylistic/eslint-plugin"
 import globals from "globals"
 import tsLint from "typescript-eslint"
-// const __filename = fileURLToPath(import.meta.url);
-// const __dirname = path.dirname(__filename);
-// const compat = new FlatCompat({
-//     baseDirectory: __dirname,
-//     recommendedConfig: js.configs.recommended,
-//     allConfig: js.configs.all
-// });
 
 export default [
   // config parsers
   {
-    files: ["src/*.{js,mjs,cjs,ts,mts,jsx,tsx}"]
-  },
-
-  {
-    files: ["tests/*.{js,mjs,cjs,ts,mts,jsx,tsx}"],
-    languageOptions: {
-      globals: {
-        ...globals.browser,
-        ...globals.node,
-        ...globals.mocha,
-        ...globals.jest
-      }
-    }
-  },
-  // config envs
-  {
+    files: ["src/*.{js,mjs,cjs,ts,mts,jsx,tsx}"],
     languageOptions: {
       globals: {
         ...globals.browser, ...globals.node
       }
     }
   },
+
   // syntax rules
   jsLint.configs.recommended,
   ...tsLint.configs.recommended,
@@ -47,32 +26,36 @@ export default [
     quotes: "double",
     semi: false,
     commaDangle: "never"
-  })
-  //     {
-  //     ignores: [
-  //         "**/node_modules/",
-  //         "**/dist/",
-  //         "**/lib_cjs/",
-  //         "**/lib_es/",
-  //         "**/exampless/",
-  //     ],
-  // },
-  // ...compat.extends(
-  //     "eslint:recommended",
-  //     "plugin:@typescript-eslint/recommended",
-  // ), {
-  //     plugins: {
-  //         "@typescript-eslint": typescriptEslint,
-  //     },
+  }),
+  {
+    ignores: [
+      "**/node_modules/",
+      "**/coverage/",
+      "**/dist/",
+      "**/docs/",
+      "**/examples/",
+      "**/lib_cjs/",
+      "**/lib_es/"
+    ]
+  },
+  {
+    rules: {
+      // "@typescript-eslint/no-explicit-any": "off"
+    }
+  },
+  {
+    files: ["tests/*.{js,mjs,cjs,ts,mts,jsx,tsx}"],
+    languageOptions: {
+      globals: {
+        ...globals.browser,
+        ...globals.node,
+        ...globals.mocha,
+        ...globals.jest
+      }
+    },
 
-  // rules: {
-  //     "no-undef": "error",
-  //     "no-var": "error",
-  //     "prefer-const": "error",
-  //     "no-const-assign": "error",
-  //     "one-var": ["error", "never"],
-  //     "sort-imports": "off",
-  //     "no-control-regex": "off",
-  // },
-  // }
+    rules: {
+      "@typescript-eslint/no-explicit-any": "off"
+    }
+  }
 ]

From 2ab032e4acee16edf06c48803838996af9ffbaa0 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:03:46 +0100
Subject: [PATCH 14/20] feat: standard buid process using unbuild

---
 build.config.ts | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/build.config.ts b/build.config.ts
index 3a00ac5..c049b81 100644
--- a/build.config.ts
+++ b/build.config.ts
@@ -37,15 +37,23 @@ export default defineBuildConfig({
     "rollup:options": (ctx, option) => {
       option.output?.push(
         {
-        //   file: "dist/index.js",
+          entryFileNames: "quran-meta.js",
           name: "quranMeta",
           dir: "dist",
           format: "umd",
-          //   format: "iife",
-          exports: "auto",
-          preferConst: true,
-          externalLiveBindings: false,
-          freeze: false
+          banner: banner,
+          sourcemap: true
+        },
+        {
+          // input: "./src/index.ts",
+          entryFileNames: "quran-meta.min.js",
+          name: "quranMeta",
+          inlineDynamicImports: true,
+          dir: "dist",
+          format: "umd",
+          banner: banner,
+          minify: true,
+          compact: true
         }
       )
     }

From 457e5c9408d1fe9dcca69e03a9b6bd1bb7a3e5b2 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:04:13 +0100
Subject: [PATCH 15/20] feat: full cleanup and addition of changelogen

---
 dist/index.cjs                                | 2101 ++++++++++++
 dist/index.d.cts                              |  260 ++
 dist/index.d.mts                              |  260 ++
 dist/index.d.ts                               |  260 ++
 dist/index.mjs                                | 2069 ++++++++++++
 dist/json/sura.ru.ts                          |  118 -
 dist/quran-meta.common.js                     |  816 -----
 dist/quran-meta.common.js.map                 |    1 -
 dist/quran-meta.esm.browser.js                |  738 -----
 dist/quran-meta.esm.browser.min.js            |    1 -
 dist/quran-meta.esm.js                        |  784 -----
 dist/quran-meta.esm.js.map                    |    1 -
 dist/quran-meta.js                            | 2832 ++++++++++++-----
 dist/quran-meta.js.map                        |    2 +-
 dist/quran-meta.min.js                        | 2010 +++++++++++-
 docs/assets/highlight.css                     |    2 +-
 docs/assets/icons.js                          |   18 +
 docs/assets/icons.svg                         |    1 +
 docs/assets/main.js                           |  112 +-
 docs/assets/navigation.js                     |    1 +
 docs/assets/search.js                         |    2 +-
 docs/assets/style.css                         |  977 +++---
 docs/functions/ayaStringSplitter.html         |  103 +-
 docs/functions/checkValidAyahId.html          |    5 +
 docs/functions/checkValidSurah.html           |    5 +
 docs/functions/checkValidSurahAyah.html       |    6 +
 docs/functions/findAyaidBySurah.html          |  100 +-
 docs/functions/findJuz.html                   |  103 +-
 docs/functions/findJuzAndShift.html           |  116 +-
 docs/functions/findJuzByAyaid.html            |   97 +-
 docs/functions/findJuzHizb.html               |  103 +-
 docs/functions/findJuzHizbByAyaid.html        |   97 +-
 docs/functions/findJuzMetaBySurah.html        |  104 +-
 docs/functions/findPage.html                  |  103 +-
 docs/functions/findRangeAroundAyah.html       |  106 +-
 docs/functions/findSurahByAyaid.html          |   97 +-
 docs/functions/getAyaCountinSura.html         |   97 +-
 docs/functions/getSurahMeta.html              |   99 +-
 docs/functions/isAyahJuzFirst.html            |  105 +-
 docs/functions/isAyahPageFirst.html           |  105 +-
 docs/functions/nextAyah.html                  |  100 +-
 docs/functions/pageMeta-1.html                |  100 +-
 docs/functions/prevAyah.html                  |  100 +-
 docs/index.html                               |  167 +-
 docs/modules.html                             |  175 +-
 docs/types/AyahId.html                        |   85 +-
 docs/types/AyahNo.html                        |   85 +-
 docs/types/Juz.html                           |   85 +-
 docs/types/JuzHizb.html                       |    1 +
 docs/types/JuzMeta.html                       |   98 +-
 docs/types/Page.html                          |   85 +-
 docs/types/PageMeta.html                      |   94 +-
 docs/types/QuranMeta.html                     |    1 +
 docs/types/Sajda.html                         |   85 +-
 docs/types/SajdaType.html                     |    1 +
 docs/types/SuraName.html                      |    1 +
 docs/types/Surah.html                         |   85 +-
 docs/types/SurahAyah.html                     |   85 +-
 docs/types/SurahAyahSegment.html              |    1 +
 docs/types/SurahMeta.html                     |   85 +-
 docs/variables/HizbQuarterList.html           |   85 +-
 docs/variables/JuzList.html                   |   85 +-
 docs/variables/ManzilList.html                |   85 +-
 docs/variables/PageList.html                  |   85 +-
 docs/variables/RukuList.html                  |   85 +-
 docs/variables/SajdaList.html                 |   85 +-
 docs/variables/SuraList.html                  |   85 +-
 docs/variables/meta.html                      |   85 +-
 docs/variables/suraNamesEn.html               |   85 +-
 docs/variables/suraNamesRu.html               |   85 +-
 examples/hello.mjs                            |    2 +-
 examples/index.html                           |    2 +-
 examples/sample.cjs                           |    2 +-
 examples/sample.mjs                           |    2 +-
 examples/sample.ts                            |    2 +-
 lib_cjs/ayaStringSplitter.cjs                 |   35 +
 lib_cjs/ayaStringSplitter.js                  |   40 -
 lib_cjs/ayaStringSplitter.js.map              |    1 -
 lib_cjs/checkValidAyahId.js                   |   16 -
 lib_cjs/checkValidAyahId.js.map               |    1 -
 lib_cjs/checkValidSurah.js                    |   21 -
 lib_cjs/checkValidSurah.js.map                |    1 -
 lib_cjs/checkValidSurahAyah.js                |   26 -
 lib_cjs/checkValidSurahAyah.js.map            |    1 -
 lib_cjs/const.cjs                             |   13 +
 lib_cjs/const.js                              |   11 -
 lib_cjs/const.js.map                          |    1 -
 lib_cjs/findAyaidBySurah.cjs                  |   13 +
 lib_cjs/findAyaidBySurah.js                   |   17 -
 lib_cjs/findAyaidBySurah.js.map               |    1 -
 lib_cjs/findJuz.cjs                           |   13 +
 lib_cjs/findJuz.js                            |   23 -
 lib_cjs/findJuz.js.map                        |    1 -
 lib_cjs/findJuzAndShift.cjs                   |   24 +
 lib_cjs/findJuzAndShift.js                    |   38 -
 lib_cjs/findJuzAndShift.js.map                |    1 -
 lib_cjs/findJuzByAyaid.cjs                    |   12 +
 lib_cjs/findJuzByAyaid.js                     |   16 -
 lib_cjs/findJuzByAyaid.js.map                 |    1 -
 lib_cjs/findJuzHizb.cjs                       |   13 +
 lib_cjs/findJuzHizb.js                        |   23 -
 lib_cjs/findJuzHizb.js.map                    |    1 -
 lib_cjs/findJuzHizbByAyaid.cjs                |   20 +
 lib_cjs/findJuzHizbByAyaid.js                 |   19 -
 lib_cjs/findJuzHizbByAyaid.js.map             |    1 -
 lib_cjs/findJuzMetaBySurah.cjs                |   28 +
 lib_cjs/findJuzMetaBySurah.js                 |   29 -
 lib_cjs/findJuzMetaBySurah.js.map             |    1 -
 lib_cjs/findPage.cjs                          |   13 +
 lib_cjs/findPage.js                           |   23 -
 lib_cjs/findPage.js.map                       |    1 -
 lib_cjs/findRangeAroundAyah.cjs               |   40 +
 lib_cjs/findRangeAroundAyah.js                |   67 -
 lib_cjs/findRangeAroundAyah.js.map            |    1 -
 lib_cjs/findSurahByAyaid.cjs                  |   13 +
 lib_cjs/findSurahByAyaid.js                   |   17 -
 lib_cjs/findSurahByAyaid.js.map               |    1 -
 lib_cjs/getAyaCountinSura.cjs                 |   10 +
 lib_cjs/getAyaCountinSura.js                  |   13 -
 lib_cjs/getAyaCountinSura.js.map              |    1 -
 lib_cjs/getSurahMeta.cjs                      |   12 +
 lib_cjs/getSurahMeta.js                       |   16 -
 lib_cjs/getSurahMeta.js.map                   |    1 -
 lib_cjs/hizbList.js                           |   25 -
 lib_cjs/hizbList.js.map                       |    1 -
 lib_cjs/i18n/sura.en.cjs                      |    7 +
 lib_cjs/i18n/sura.en.js                       |  121 -
 lib_cjs/i18n/sura.en.js.map                   |    1 -
 lib_cjs/i18n/sura.ru.cjs                      |    7 +
 lib_cjs/i18n/sura.ru.js                       |  121 -
 lib_cjs/i18n/sura.ru.js.map                   |    1 -
 lib_cjs/index.cjs                             |  220 ++
 lib_cjs/index.js                              |   77 -
 lib_cjs/index.js.map                          |    1 -
 lib_cjs/isAyahJuzFirst.cjs                    |   14 +
 lib_cjs/isAyahJuzFirst.js                     |   26 -
 lib_cjs/isAyahJuzFirst.js.map                 |    1 -
 lib_cjs/isAyahPageFirst.cjs                   |   14 +
 lib_cjs/isAyahPageFirst.js                    |   25 -
 lib_cjs/isAyahPageFirst.js.map                |    1 -
 lib_cjs/json/qdata-hizb.json                  |  244 ++
 lib_cjs/json/qdata-page.json                  |  608 ++++
 lib_cjs/json/qdata-ruku.json                  |  559 ++++
 lib_cjs/json/qdata-surah.json                 |  118 +
 lib_cjs/juzList.js                            |   10 -
 lib_cjs/juzList.js.map                        |    1 -
 lib_cjs/lists/hizbList.cjs                    |    7 +
 lib_cjs/lists/hizbList.js                     |   25 -
 lib_cjs/lists/hizbList.js.map                 |    1 -
 lib_cjs/lists/juzList.cjs                     |    7 +
 lib_cjs/lists/juzList.js                      |   10 -
 lib_cjs/lists/juzList.js.map                  |    1 -
 lib_cjs/lists/manzilList.cjs                  |    7 +
 lib_cjs/lists/manzilList.js                   |    6 -
 lib_cjs/lists/manzilList.js.map               |    1 -
 lib_cjs/lists/pageList.cjs                    |    7 +
 lib_cjs/lists/pageList.js                     |   51 -
 lib_cjs/lists/pageList.js.map                 |    1 -
 lib_cjs/lists/rukuList.cjs                    |    7 +
 lib_cjs/lists/rukuList.js                     |   48 -
 lib_cjs/lists/rukuList.js.map                 |    1 -
 lib_cjs/lists/sajdaList.cjs                   |    9 +
 lib_cjs/lists/sajdaList.js                    |   32 -
 lib_cjs/lists/sajdaList.js.map                |    1 -
 lib_cjs/lists/surahList.cjs                   |    7 +
 lib_cjs/lists/surahList.js                    |  122 -
 lib_cjs/lists/surahList.js.map                |    1 -
 lib_cjs/manzilList.js                         |    6 -
 lib_cjs/manzilList.js.map                     |    1 -
 lib_cjs/nextAyah.cjs                          |   14 +
 lib_cjs/nextAyah.js                           |   19 -
 lib_cjs/nextAyah.js.map                       |    1 -
 lib_cjs/pageList.js                           |   51 -
 lib_cjs/pageList.js.map                       |    1 -
 lib_cjs/pageMeta.cjs                          |   18 +
 lib_cjs/pageMeta.js                           |   37 -
 lib_cjs/pageMeta.js.map                       |    1 -
 lib_cjs/prevAyah.cjs                          |   15 +
 lib_cjs/prevAyah.js                           |   19 -
 lib_cjs/prevAyah.js.map                       |    1 -
 lib_cjs/rukuList.js                           |   48 -
 lib_cjs/rukuList.js.map                       |    1 -
 lib_cjs/sajdaList.js                          |   32 -
 lib_cjs/sajdaList.js.map                      |    1 -
 lib_cjs/surahList.js                          |  122 -
 lib_cjs/surahList.js.map                      |    1 -
 lib_cjs/types.cjs                             |    1 +
 lib_cjs/types.js                              |    3 -
 lib_cjs/types.js.map                          |    1 -
 lib_cjs/utils.cjs                             |   22 +
 lib_cjs/utils.js                              |   31 -
 lib_cjs/utils.js.map                          |    1 -
 lib_cjs/validation.cjs                        |   40 +
 {types => lib_es}/ayaStringSplitter.d.ts      |    0
 lib_es/ayaStringSplitter.js                   |   37 -
 lib_es/ayaStringSplitter.js.map               |    1 -
 lib_es/ayaStringSplitter.mjs                  |   29 +
 lib_es/checkValidAyahId.js                    |   13 -
 lib_es/checkValidAyahId.js.map                |    1 -
 lib_es/checkValidSurah.js                     |   17 -
 lib_es/checkValidSurah.js.map                 |    1 -
 lib_es/checkValidSurahAyah.js                 |   22 -
 lib_es/checkValidSurahAyah.js.map             |    1 -
 {types => lib_es}/const.d.ts                  |    3 +-
 lib_es/const.js                               |    8 -
 lib_es/const.js.map                           |    1 -
 lib_es/const.mjs                              |    7 +
 {types => lib_es}/findAyaidBySurah.d.ts       |    0
 lib_es/findAyaidBySurah.js                    |   14 -
 lib_es/findAyaidBySurah.js.map                |    1 -
 lib_es/findAyaidBySurah.mjs                   |    7 +
 {types => lib_es}/findJuz.d.ts                |    0
 lib_es/findJuz.js                             |   18 -
 lib_es/findJuz.js.map                         |    1 -
 lib_es/findJuz.mjs                            |    7 +
 {types => lib_es}/findJuzAndShift.d.ts        |    0
 lib_es/findJuzAndShift.js                     |   34 -
 lib_es/findJuzAndShift.js.map                 |    1 -
 lib_es/findJuzAndShift.mjs                    |   18 +
 {types => lib_es}/findJuzByAyaid.d.ts         |    0
 lib_es/findJuzByAyaid.js                      |   13 -
 lib_es/findJuzByAyaid.js.map                  |    1 -
 lib_es/findJuzByAyaid.mjs                     |    6 +
 {types => lib_es}/findJuzHizb.d.ts            |    0
 lib_es/findJuzHizb.js                         |   18 -
 lib_es/findJuzHizb.js.map                     |    1 -
 lib_es/findJuzHizb.mjs                        |    7 +
 {types => lib_es}/findJuzHizbByAyaid.d.ts     |    0
 lib_es/findJuzHizbByAyaid.js                  |   16 -
 lib_es/findJuzHizbByAyaid.js.map              |    1 -
 lib_es/findJuzHizbByAyaid.mjs                 |   10 +
 lib_es/findJuzMetaBySurah.d.ts                |    9 +
 lib_es/findJuzMetaBySurah.js                  |   25 -
 lib_es/findJuzMetaBySurah.js.map              |    1 -
 lib_es/findJuzMetaBySurah.mjs                 |   22 +
 {types => lib_es}/findPage.d.ts               |    0
 lib_es/findPage.js                            |   19 -
 lib_es/findPage.js.map                        |    1 -
 lib_es/findPage.mjs                           |    7 +
 {types => lib_es}/findRangeAroundAyah.d.ts    |    0
 lib_es/findRangeAroundAyah.js                 |   63 -
 lib_es/findRangeAroundAyah.js.map             |    1 -
 lib_es/findRangeAroundAyah.mjs                |   30 +
 {types => lib_es}/findSurahByAyaid.d.ts       |    0
 lib_es/findSurahByAyaid.js                    |   14 -
 lib_es/findSurahByAyaid.js.map                |    1 -
 lib_es/findSurahByAyaid.mjs                   |    7 +
 {types => lib_es}/getAyaCountinSura.d.ts      |    0
 lib_es/getAyaCountinSura.js                   |   10 -
 lib_es/getAyaCountinSura.js.map               |    1 -
 lib_es/getAyaCountinSura.mjs                  |    4 +
 {types => lib_es}/getSurahMeta.d.ts           |    0
 lib_es/getSurahMeta.js                        |   13 -
 lib_es/getSurahMeta.js.map                    |    1 -
 lib_es/getSurahMeta.mjs                       |    6 +
 lib_es/hizbList.js                            |   22 -
 lib_es/hizbList.js.map                        |    1 -
 {types => lib_es}/i18n/sura.en.d.ts           |    0
 lib_es/i18n/sura.en.js                        |  118 -
 lib_es/i18n/sura.en.js.map                    |    1 -
 .../sura.en.ts => lib_es/i18n/sura.en.mjs     |    7 +-
 {types => lib_es}/i18n/sura.ru.d.ts           |    0
 lib_es/i18n/sura.ru.js                        |  118 -
 lib_es/i18n/sura.ru.js.map                    |    1 -
 lib_es/i18n/sura.ru.mjs                       |  117 +
 {types => lib_es}/index.d.ts                  |   12 +-
 lib_es/index.js                               |   43 -
 lib_es/index.js.map                           |    1 -
 lib_es/index.mjs                              |   29 +
 {types => lib_es}/isAyahJuzFirst.d.ts         |    0
 lib_es/isAyahJuzFirst.js                      |   22 -
 lib_es/isAyahJuzFirst.js.map                  |    1 -
 lib_es/isAyahJuzFirst.mjs                     |    8 +
 {types => lib_es}/isAyahPageFirst.d.ts        |    0
 lib_es/isAyahPageFirst.js                     |   21 -
 lib_es/isAyahPageFirst.js.map                 |    1 -
 lib_es/isAyahPageFirst.mjs                    |    8 +
 lib_es/json/qdata-hizb.json                   |  244 ++
 lib_es/json/qdata-page.json                   |  608 ++++
 lib_es/json/qdata-ruku.json                   |  559 ++++
 lib_es/json/qdata-surah.json                  |  118 +
 lib_es/juzList.js                             |    7 -
 lib_es/juzList.js.map                         |    1 -
 {types => lib_es}/lists/hizbList.d.ts         |    0
 lib_es/lists/hizbList.js                      |   22 -
 lib_es/lists/hizbList.js.map                  |    1 -
 lib_es/lists/hizbList.mjs                     |  244 ++
 {types => lib_es}/lists/juzList.d.ts          |    0
 lib_es/lists/juzList.js                       |    7 -
 lib_es/lists/juzList.js.map                   |    1 -
 lib_es/lists/juzList.mjs                      |   34 +
 {types => lib_es}/lists/manzilList.d.ts       |    0
 lib_es/lists/manzilList.js                    |    3 -
 lib_es/lists/manzilList.js.map                |    1 -
 lib_es/lists/manzilList.mjs                   |   11 +
 {types => lib_es}/lists/pageList.d.ts         |    0
 lib_es/lists/pageList.js                      |   48 -
 lib_es/lists/pageList.js.map                  |    1 -
 lib_es/lists/pageList.mjs                     |  608 ++++
 {types => lib_es}/lists/rukuList.d.ts         |    0
 lib_es/lists/rukuList.js                      |   45 -
 lib_es/lists/rukuList.js.map                  |    1 -
 lib_es/lists/rukuList.mjs                     |  560 ++++
 {types => lib_es}/lists/sajdaList.d.ts        |    0
 lib_es/lists/sajdaList.js                     |   29 -
 lib_es/lists/sajdaList.js.map                 |    1 -
 lib_es/lists/sajdaList.mjs                    |   18 +
 {types => lib_es}/lists/surahList.d.ts        |    0
 lib_es/lists/surahList.js                     |  119 -
 lib_es/lists/surahList.js.map                 |    1 -
 lib_es/lists/surahList.mjs                    |  118 +
 lib_es/manzilList.js                          |    3 -
 lib_es/manzilList.js.map                      |    1 -
 {types => lib_es}/nextAyah.d.ts               |    0
 lib_es/nextAyah.js                            |   16 -
 lib_es/nextAyah.js.map                        |    1 -
 lib_es/nextAyah.mjs                           |    9 +
 lib_es/pageList.js                            |   48 -
 lib_es/pageList.js.map                        |    1 -
 {types => lib_es}/pageMeta.d.ts               |    0
 lib_es/pageMeta.js                            |   25 -
 lib_es/pageMeta.js.map                        |    1 -
 lib_es/pageMeta.mjs                           |   16 +
 {types => lib_es}/prevAyah.d.ts               |    0
 lib_es/prevAyah.js                            |   16 -
 lib_es/prevAyah.js.map                        |    1 -
 lib_es/prevAyah.mjs                           |    9 +
 lib_es/rukuList.js                            |   45 -
 lib_es/rukuList.js.map                        |    1 -
 lib_es/sajdaList.js                           |   29 -
 lib_es/sajdaList.js.map                       |    1 -
 lib_es/surahList.js                           |  119 -
 lib_es/surahList.js.map                       |    1 -
 {types => lib_es}/types.d.ts                  |    0
 lib_es/types.js                               |    2 -
 lib_es/types.js.map                           |    1 -
 lib_es/types.mjs                              |    0
 {types => lib_es}/utils.d.ts                  |    0
 lib_es/utils.js                               |   27 -
 lib_es/utils.js.map                           |    1 -
 lib_es/utils.mjs                              |   16 +
 lib_es/validation.d.ts                        |   25 +
 lib_es/validation.mjs                         |   32 +
 package.json                                  |   83 +-
 pnpm-lock.yaml                                | 2352 ++++++++++----
 src/const.ts                                  |    2 +-
 src/findJuzMetaBySurah.ts                     |    9 +-
 src/index.ts                                  |   12 +-
 src/validation.ts                             |    3 +-
 tsconfig.json                                 |   13 +-
 types/checkValidAyahId.d.ts                   |    8 -
 types/checkValidSurah.d.ts                    |    9 -
 types/checkValidSurahAyah.d.ts                |   10 -
 types/findJuzMetaBySurah.d.ts                 |    8 -
 types/hizbList.d.ts                           |    2 -
 types/juzList.d.ts                            |    2 -
 types/manzilList.d.ts                         |    2 -
 types/pageList.d.ts                           |    2 -
 types/rukuList.d.ts                           |    2 -
 types/sajdaList.d.ts                          |    2 -
 types/surahList.d.ts                          |    2 -
 vitest.config.ts                              |   10 +-
 362 files changed, 17570 insertions(+), 10931 deletions(-)
 create mode 100644 dist/index.cjs
 create mode 100644 dist/index.d.cts
 create mode 100644 dist/index.d.mts
 create mode 100644 dist/index.d.ts
 create mode 100644 dist/index.mjs
 delete mode 100644 dist/json/sura.ru.ts
 delete mode 100644 dist/quran-meta.common.js
 delete mode 100644 dist/quran-meta.common.js.map
 delete mode 100644 dist/quran-meta.esm.browser.js
 delete mode 100644 dist/quran-meta.esm.browser.min.js
 delete mode 100644 dist/quran-meta.esm.js
 delete mode 100644 dist/quran-meta.esm.js.map
 create mode 100644 docs/assets/icons.js
 create mode 100644 docs/assets/icons.svg
 create mode 100644 docs/assets/navigation.js
 create mode 100644 docs/functions/checkValidAyahId.html
 create mode 100644 docs/functions/checkValidSurah.html
 create mode 100644 docs/functions/checkValidSurahAyah.html
 create mode 100644 docs/types/JuzHizb.html
 create mode 100644 docs/types/QuranMeta.html
 create mode 100644 docs/types/SajdaType.html
 create mode 100644 docs/types/SuraName.html
 create mode 100644 docs/types/SurahAyahSegment.html
 create mode 100644 lib_cjs/ayaStringSplitter.cjs
 delete mode 100644 lib_cjs/ayaStringSplitter.js
 delete mode 100644 lib_cjs/ayaStringSplitter.js.map
 delete mode 100644 lib_cjs/checkValidAyahId.js
 delete mode 100644 lib_cjs/checkValidAyahId.js.map
 delete mode 100644 lib_cjs/checkValidSurah.js
 delete mode 100644 lib_cjs/checkValidSurah.js.map
 delete mode 100644 lib_cjs/checkValidSurahAyah.js
 delete mode 100644 lib_cjs/checkValidSurahAyah.js.map
 create mode 100644 lib_cjs/const.cjs
 delete mode 100644 lib_cjs/const.js
 delete mode 100644 lib_cjs/const.js.map
 create mode 100644 lib_cjs/findAyaidBySurah.cjs
 delete mode 100644 lib_cjs/findAyaidBySurah.js
 delete mode 100644 lib_cjs/findAyaidBySurah.js.map
 create mode 100644 lib_cjs/findJuz.cjs
 delete mode 100644 lib_cjs/findJuz.js
 delete mode 100644 lib_cjs/findJuz.js.map
 create mode 100644 lib_cjs/findJuzAndShift.cjs
 delete mode 100644 lib_cjs/findJuzAndShift.js
 delete mode 100644 lib_cjs/findJuzAndShift.js.map
 create mode 100644 lib_cjs/findJuzByAyaid.cjs
 delete mode 100644 lib_cjs/findJuzByAyaid.js
 delete mode 100644 lib_cjs/findJuzByAyaid.js.map
 create mode 100644 lib_cjs/findJuzHizb.cjs
 delete mode 100644 lib_cjs/findJuzHizb.js
 delete mode 100644 lib_cjs/findJuzHizb.js.map
 create mode 100644 lib_cjs/findJuzHizbByAyaid.cjs
 delete mode 100644 lib_cjs/findJuzHizbByAyaid.js
 delete mode 100644 lib_cjs/findJuzHizbByAyaid.js.map
 create mode 100644 lib_cjs/findJuzMetaBySurah.cjs
 delete mode 100644 lib_cjs/findJuzMetaBySurah.js
 delete mode 100644 lib_cjs/findJuzMetaBySurah.js.map
 create mode 100644 lib_cjs/findPage.cjs
 delete mode 100644 lib_cjs/findPage.js
 delete mode 100644 lib_cjs/findPage.js.map
 create mode 100644 lib_cjs/findRangeAroundAyah.cjs
 delete mode 100644 lib_cjs/findRangeAroundAyah.js
 delete mode 100644 lib_cjs/findRangeAroundAyah.js.map
 create mode 100644 lib_cjs/findSurahByAyaid.cjs
 delete mode 100644 lib_cjs/findSurahByAyaid.js
 delete mode 100644 lib_cjs/findSurahByAyaid.js.map
 create mode 100644 lib_cjs/getAyaCountinSura.cjs
 delete mode 100644 lib_cjs/getAyaCountinSura.js
 delete mode 100644 lib_cjs/getAyaCountinSura.js.map
 create mode 100644 lib_cjs/getSurahMeta.cjs
 delete mode 100644 lib_cjs/getSurahMeta.js
 delete mode 100644 lib_cjs/getSurahMeta.js.map
 delete mode 100644 lib_cjs/hizbList.js
 delete mode 100644 lib_cjs/hizbList.js.map
 create mode 100644 lib_cjs/i18n/sura.en.cjs
 delete mode 100644 lib_cjs/i18n/sura.en.js
 delete mode 100644 lib_cjs/i18n/sura.en.js.map
 create mode 100644 lib_cjs/i18n/sura.ru.cjs
 delete mode 100644 lib_cjs/i18n/sura.ru.js
 delete mode 100644 lib_cjs/i18n/sura.ru.js.map
 create mode 100644 lib_cjs/index.cjs
 delete mode 100644 lib_cjs/index.js
 delete mode 100644 lib_cjs/index.js.map
 create mode 100644 lib_cjs/isAyahJuzFirst.cjs
 delete mode 100644 lib_cjs/isAyahJuzFirst.js
 delete mode 100644 lib_cjs/isAyahJuzFirst.js.map
 create mode 100644 lib_cjs/isAyahPageFirst.cjs
 delete mode 100644 lib_cjs/isAyahPageFirst.js
 delete mode 100644 lib_cjs/isAyahPageFirst.js.map
 create mode 100644 lib_cjs/json/qdata-hizb.json
 create mode 100644 lib_cjs/json/qdata-page.json
 create mode 100644 lib_cjs/json/qdata-ruku.json
 create mode 100644 lib_cjs/json/qdata-surah.json
 delete mode 100644 lib_cjs/juzList.js
 delete mode 100644 lib_cjs/juzList.js.map
 create mode 100644 lib_cjs/lists/hizbList.cjs
 delete mode 100644 lib_cjs/lists/hizbList.js
 delete mode 100644 lib_cjs/lists/hizbList.js.map
 create mode 100644 lib_cjs/lists/juzList.cjs
 delete mode 100644 lib_cjs/lists/juzList.js
 delete mode 100644 lib_cjs/lists/juzList.js.map
 create mode 100644 lib_cjs/lists/manzilList.cjs
 delete mode 100644 lib_cjs/lists/manzilList.js
 delete mode 100644 lib_cjs/lists/manzilList.js.map
 create mode 100644 lib_cjs/lists/pageList.cjs
 delete mode 100644 lib_cjs/lists/pageList.js
 delete mode 100644 lib_cjs/lists/pageList.js.map
 create mode 100644 lib_cjs/lists/rukuList.cjs
 delete mode 100644 lib_cjs/lists/rukuList.js
 delete mode 100644 lib_cjs/lists/rukuList.js.map
 create mode 100644 lib_cjs/lists/sajdaList.cjs
 delete mode 100644 lib_cjs/lists/sajdaList.js
 delete mode 100644 lib_cjs/lists/sajdaList.js.map
 create mode 100644 lib_cjs/lists/surahList.cjs
 delete mode 100644 lib_cjs/lists/surahList.js
 delete mode 100644 lib_cjs/lists/surahList.js.map
 delete mode 100644 lib_cjs/manzilList.js
 delete mode 100644 lib_cjs/manzilList.js.map
 create mode 100644 lib_cjs/nextAyah.cjs
 delete mode 100644 lib_cjs/nextAyah.js
 delete mode 100644 lib_cjs/nextAyah.js.map
 delete mode 100644 lib_cjs/pageList.js
 delete mode 100644 lib_cjs/pageList.js.map
 create mode 100644 lib_cjs/pageMeta.cjs
 delete mode 100644 lib_cjs/pageMeta.js
 delete mode 100644 lib_cjs/pageMeta.js.map
 create mode 100644 lib_cjs/prevAyah.cjs
 delete mode 100644 lib_cjs/prevAyah.js
 delete mode 100644 lib_cjs/prevAyah.js.map
 delete mode 100644 lib_cjs/rukuList.js
 delete mode 100644 lib_cjs/rukuList.js.map
 delete mode 100644 lib_cjs/sajdaList.js
 delete mode 100644 lib_cjs/sajdaList.js.map
 delete mode 100644 lib_cjs/surahList.js
 delete mode 100644 lib_cjs/surahList.js.map
 create mode 100644 lib_cjs/types.cjs
 delete mode 100644 lib_cjs/types.js
 delete mode 100644 lib_cjs/types.js.map
 create mode 100644 lib_cjs/utils.cjs
 delete mode 100644 lib_cjs/utils.js
 delete mode 100644 lib_cjs/utils.js.map
 create mode 100644 lib_cjs/validation.cjs
 rename {types => lib_es}/ayaStringSplitter.d.ts (100%)
 delete mode 100644 lib_es/ayaStringSplitter.js
 delete mode 100644 lib_es/ayaStringSplitter.js.map
 create mode 100644 lib_es/ayaStringSplitter.mjs
 delete mode 100644 lib_es/checkValidAyahId.js
 delete mode 100644 lib_es/checkValidAyahId.js.map
 delete mode 100644 lib_es/checkValidSurah.js
 delete mode 100644 lib_es/checkValidSurah.js.map
 delete mode 100644 lib_es/checkValidSurahAyah.js
 delete mode 100644 lib_es/checkValidSurahAyah.js.map
 rename {types => lib_es}/const.d.ts (84%)
 delete mode 100644 lib_es/const.js
 delete mode 100644 lib_es/const.js.map
 create mode 100644 lib_es/const.mjs
 rename {types => lib_es}/findAyaidBySurah.d.ts (100%)
 delete mode 100644 lib_es/findAyaidBySurah.js
 delete mode 100644 lib_es/findAyaidBySurah.js.map
 create mode 100644 lib_es/findAyaidBySurah.mjs
 rename {types => lib_es}/findJuz.d.ts (100%)
 delete mode 100644 lib_es/findJuz.js
 delete mode 100644 lib_es/findJuz.js.map
 create mode 100644 lib_es/findJuz.mjs
 rename {types => lib_es}/findJuzAndShift.d.ts (100%)
 delete mode 100644 lib_es/findJuzAndShift.js
 delete mode 100644 lib_es/findJuzAndShift.js.map
 create mode 100644 lib_es/findJuzAndShift.mjs
 rename {types => lib_es}/findJuzByAyaid.d.ts (100%)
 delete mode 100644 lib_es/findJuzByAyaid.js
 delete mode 100644 lib_es/findJuzByAyaid.js.map
 create mode 100644 lib_es/findJuzByAyaid.mjs
 rename {types => lib_es}/findJuzHizb.d.ts (100%)
 delete mode 100644 lib_es/findJuzHizb.js
 delete mode 100644 lib_es/findJuzHizb.js.map
 create mode 100644 lib_es/findJuzHizb.mjs
 rename {types => lib_es}/findJuzHizbByAyaid.d.ts (100%)
 delete mode 100644 lib_es/findJuzHizbByAyaid.js
 delete mode 100644 lib_es/findJuzHizbByAyaid.js.map
 create mode 100644 lib_es/findJuzHizbByAyaid.mjs
 create mode 100644 lib_es/findJuzMetaBySurah.d.ts
 delete mode 100644 lib_es/findJuzMetaBySurah.js
 delete mode 100644 lib_es/findJuzMetaBySurah.js.map
 create mode 100644 lib_es/findJuzMetaBySurah.mjs
 rename {types => lib_es}/findPage.d.ts (100%)
 delete mode 100644 lib_es/findPage.js
 delete mode 100644 lib_es/findPage.js.map
 create mode 100644 lib_es/findPage.mjs
 rename {types => lib_es}/findRangeAroundAyah.d.ts (100%)
 delete mode 100644 lib_es/findRangeAroundAyah.js
 delete mode 100644 lib_es/findRangeAroundAyah.js.map
 create mode 100644 lib_es/findRangeAroundAyah.mjs
 rename {types => lib_es}/findSurahByAyaid.d.ts (100%)
 delete mode 100644 lib_es/findSurahByAyaid.js
 delete mode 100644 lib_es/findSurahByAyaid.js.map
 create mode 100644 lib_es/findSurahByAyaid.mjs
 rename {types => lib_es}/getAyaCountinSura.d.ts (100%)
 delete mode 100644 lib_es/getAyaCountinSura.js
 delete mode 100644 lib_es/getAyaCountinSura.js.map
 create mode 100644 lib_es/getAyaCountinSura.mjs
 rename {types => lib_es}/getSurahMeta.d.ts (100%)
 delete mode 100644 lib_es/getSurahMeta.js
 delete mode 100644 lib_es/getSurahMeta.js.map
 create mode 100644 lib_es/getSurahMeta.mjs
 delete mode 100644 lib_es/hizbList.js
 delete mode 100644 lib_es/hizbList.js.map
 rename {types => lib_es}/i18n/sura.en.d.ts (100%)
 delete mode 100644 lib_es/i18n/sura.en.js
 delete mode 100644 lib_es/i18n/sura.en.js.map
 rename dist/json/sura.en.ts => lib_es/i18n/sura.en.mjs (97%)
 rename {types => lib_es}/i18n/sura.ru.d.ts (100%)
 delete mode 100644 lib_es/i18n/sura.ru.js
 delete mode 100644 lib_es/i18n/sura.ru.js.map
 create mode 100644 lib_es/i18n/sura.ru.mjs
 rename {types => lib_es}/index.d.ts (82%)
 delete mode 100644 lib_es/index.js
 delete mode 100644 lib_es/index.js.map
 create mode 100644 lib_es/index.mjs
 rename {types => lib_es}/isAyahJuzFirst.d.ts (100%)
 delete mode 100644 lib_es/isAyahJuzFirst.js
 delete mode 100644 lib_es/isAyahJuzFirst.js.map
 create mode 100644 lib_es/isAyahJuzFirst.mjs
 rename {types => lib_es}/isAyahPageFirst.d.ts (100%)
 delete mode 100644 lib_es/isAyahPageFirst.js
 delete mode 100644 lib_es/isAyahPageFirst.js.map
 create mode 100644 lib_es/isAyahPageFirst.mjs
 create mode 100644 lib_es/json/qdata-hizb.json
 create mode 100644 lib_es/json/qdata-page.json
 create mode 100644 lib_es/json/qdata-ruku.json
 create mode 100644 lib_es/json/qdata-surah.json
 delete mode 100644 lib_es/juzList.js
 delete mode 100644 lib_es/juzList.js.map
 rename {types => lib_es}/lists/hizbList.d.ts (100%)
 delete mode 100644 lib_es/lists/hizbList.js
 delete mode 100644 lib_es/lists/hizbList.js.map
 create mode 100644 lib_es/lists/hizbList.mjs
 rename {types => lib_es}/lists/juzList.d.ts (100%)
 delete mode 100644 lib_es/lists/juzList.js
 delete mode 100644 lib_es/lists/juzList.js.map
 create mode 100644 lib_es/lists/juzList.mjs
 rename {types => lib_es}/lists/manzilList.d.ts (100%)
 delete mode 100644 lib_es/lists/manzilList.js
 delete mode 100644 lib_es/lists/manzilList.js.map
 create mode 100644 lib_es/lists/manzilList.mjs
 rename {types => lib_es}/lists/pageList.d.ts (100%)
 delete mode 100644 lib_es/lists/pageList.js
 delete mode 100644 lib_es/lists/pageList.js.map
 create mode 100644 lib_es/lists/pageList.mjs
 rename {types => lib_es}/lists/rukuList.d.ts (100%)
 delete mode 100644 lib_es/lists/rukuList.js
 delete mode 100644 lib_es/lists/rukuList.js.map
 create mode 100644 lib_es/lists/rukuList.mjs
 rename {types => lib_es}/lists/sajdaList.d.ts (100%)
 delete mode 100644 lib_es/lists/sajdaList.js
 delete mode 100644 lib_es/lists/sajdaList.js.map
 create mode 100644 lib_es/lists/sajdaList.mjs
 rename {types => lib_es}/lists/surahList.d.ts (100%)
 delete mode 100644 lib_es/lists/surahList.js
 delete mode 100644 lib_es/lists/surahList.js.map
 create mode 100644 lib_es/lists/surahList.mjs
 delete mode 100644 lib_es/manzilList.js
 delete mode 100644 lib_es/manzilList.js.map
 rename {types => lib_es}/nextAyah.d.ts (100%)
 delete mode 100644 lib_es/nextAyah.js
 delete mode 100644 lib_es/nextAyah.js.map
 create mode 100644 lib_es/nextAyah.mjs
 delete mode 100644 lib_es/pageList.js
 delete mode 100644 lib_es/pageList.js.map
 rename {types => lib_es}/pageMeta.d.ts (100%)
 delete mode 100644 lib_es/pageMeta.js
 delete mode 100644 lib_es/pageMeta.js.map
 create mode 100644 lib_es/pageMeta.mjs
 rename {types => lib_es}/prevAyah.d.ts (100%)
 delete mode 100644 lib_es/prevAyah.js
 delete mode 100644 lib_es/prevAyah.js.map
 create mode 100644 lib_es/prevAyah.mjs
 delete mode 100644 lib_es/rukuList.js
 delete mode 100644 lib_es/rukuList.js.map
 delete mode 100644 lib_es/sajdaList.js
 delete mode 100644 lib_es/sajdaList.js.map
 delete mode 100644 lib_es/surahList.js
 delete mode 100644 lib_es/surahList.js.map
 rename {types => lib_es}/types.d.ts (100%)
 delete mode 100644 lib_es/types.js
 delete mode 100644 lib_es/types.js.map
 create mode 100644 lib_es/types.mjs
 rename {types => lib_es}/utils.d.ts (100%)
 delete mode 100644 lib_es/utils.js
 delete mode 100644 lib_es/utils.js.map
 create mode 100644 lib_es/utils.mjs
 create mode 100644 lib_es/validation.d.ts
 create mode 100644 lib_es/validation.mjs
 delete mode 100644 types/checkValidAyahId.d.ts
 delete mode 100644 types/checkValidSurah.d.ts
 delete mode 100644 types/checkValidSurahAyah.d.ts
 delete mode 100644 types/findJuzMetaBySurah.d.ts
 delete mode 100644 types/hizbList.d.ts
 delete mode 100644 types/juzList.d.ts
 delete mode 100644 types/manzilList.d.ts
 delete mode 100644 types/pageList.d.ts
 delete mode 100644 types/rukuList.d.ts
 delete mode 100644 types/sajdaList.d.ts
 delete mode 100644 types/surahList.d.ts

diff --git a/dist/index.cjs b/dist/index.cjs
new file mode 100644
index 0000000..cacee1f
--- /dev/null
+++ b/dist/index.cjs
@@ -0,0 +1,2101 @@
+/*! 
+ * Quran Meta library 2.5.1
+ *
+ * Released under the MIT license
+ */
+
+'use strict';
+
+const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
+
+const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];
+
+function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}
+
+function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}
+
+function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}
+
+function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
+
+function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}
+
+const 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
+];
+
+function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}
+
+function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}
+
+function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+
+function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
+
+const 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
+];
+
+function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}
+
+function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}
+
+function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}
+
+const 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
+];
+
+function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}
+
+function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}
+
+function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
+
+function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}
+
+function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}
+
+const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];
+
+const 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
+];
+
+const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];
+
+function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
+
+function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}
+
+function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
+
+const suraNames$1 = [
+  [],
+  ["Al-Faatiha", "The Opening"],
+  ["Al-Baqara", "The Cow"],
+  ["Aal-i-Imraan", "The Family of Imraan"],
+  ["An-Nisaa", "The Women"],
+  ["Al-Maaida", "The Table"],
+  ["Al-An'aam", "The Cattle"],
+  ["Al-A'raaf", "The Heights"],
+  ["Al-Anfaal", "The Spoils of War"],
+  ["At-Tawba", "The Repentance"],
+  ["Yunus", "Jonas"],
+  ["Hud", "Hud"],
+  ["Yusuf", "Joseph"],
+  ["Ar-Ra'd", "The Thunder"],
+  ["Ibrahim", "Abraham"],
+  ["Al-Hijr", "The Rock"],
+  ["An-Nahl", "The Bee"],
+  ["Al-Israa", "The Night Journey"],
+  ["Al-Kahf", "The Cave"],
+  ["Maryam", "Mary"],
+  ["Taa-Haa", "Taa-Haa"],
+  ["Al-Anbiyaa", "The Prophets"],
+  ["Al-Hajj", "The Pilgrimage"],
+  ["Al-Muminoon", "The Believers"],
+  ["An-Noor", "The Light"],
+  ["Al-Furqaan", "The Criterion"],
+  ["Ash-Shu'araa", "The Poets"],
+  ["An-Naml", "The Ant"],
+  ["Al-Qasas", "The Stories"],
+  ["Al-Ankaboot", "The Spider"],
+  ["Ar-Room", "The Romans"],
+  ["Luqman", "Luqman"],
+  ["As-Sajda", "The Prostration"],
+  ["Al-Ahzaab", "The Clans"],
+  ["Saba", "Sheba"],
+  ["Faatir", "The Originator"],
+  ["Yaseen", "Yaseen"],
+  ["As-Saaffaat", "Those drawn up in Ranks"],
+  ["Saad", "The letter Saad"],
+  ["Az-Zumar", "The Groups"],
+  ["Al-Ghaafir", "The Forgiver"],
+  ["Fussilat", "Explained in detail"],
+  ["Ash-Shura", "Consultation"],
+  ["Az-Zukhruf", "Ornaments of gold"],
+  ["Ad-Dukhaan", "The Smoke"],
+  ["Al-Jaathiya", "Crouching"],
+  ["Al-Ahqaf", "The Dunes"],
+  ["Muhammad", "Muhammad"],
+  ["Al-Fath", "The Victory"],
+  ["Al-Hujuraat", "The Inner Apartments"],
+  ["Qaaf", "The letter Qaaf"],
+  ["Adh-Dhaariyat", "The Winnowing Winds"],
+  ["At-Tur", "The Mount"],
+  ["An-Najm", "The Star"],
+  ["Al-Qamar", "The Moon"],
+  ["Ar-Rahmaan", "The Beneficent"],
+  ["Al-Waaqia", "The Inevitable"],
+  ["Al-Hadid", "The Iron"],
+  ["Al-Mujaadila", "The Pleading Woman"],
+  ["Al-Hashr", "The Exile"],
+  ["Al-Mumtahana", "She that is to be examined"],
+  ["As-Saff", "The Ranks"],
+  ["Al-Jumu'a", "Friday"],
+  ["Al-Munaafiqoon", "The Hypocrites"],
+  ["At-Taghaabun", "Mutual Disillusion"],
+  ["At-Talaaq", "Divorce"],
+  ["At-Tahrim", "The Prohibition"],
+  ["Al-Mulk", "The Sovereignty"],
+  ["Al-Qalam", "The Pen"],
+  ["Al-Haaqqa", "The Reality"],
+  ["Al-Ma'aarij", "The Ascending Stairways"],
+  ["Nooh", "Noah"],
+  ["Al-Jinn", "The Jinn"],
+  ["Al-Muzzammil", "The Enshrouded One"],
+  ["Al-Muddaththir", "The Cloaked One"],
+  ["Al-Qiyaama", "The Resurrection"],
+  ["Al-Insaan", "Man"],
+  ["Al-Mursalaat", "The Emissaries"],
+  ["An-Naba", "The Announcement"],
+  ["An-Naazi'aat", "Those who drag forth"],
+  ["Abasa", "He frowned"],
+  ["At-Takwir", "The Overthrowing"],
+  ["Al-Infitaar", "The Cleaving"],
+  ["Al-Mutaffifin", "Defrauding"],
+  ["Al-Inshiqaaq", "The Splitting Open"],
+  ["Al-Burooj", "The Constellations"],
+  ["At-Taariq", "The Morning Star"],
+  ["Al-A'laa", "The Most High"],
+  ["Al-Ghaashiya", "The Overwhelming"],
+  ["Al-Fajr", "The Dawn"],
+  ["Al-Balad", "The City"],
+  ["Ash-Shams", "The Sun"],
+  ["Al-Lail", "The Night"],
+  ["Ad-Dhuhaa", "The Morning Hours"],
+  ["Ash-Sharh", "The Consolation"],
+  ["At-Tin", "The Fig"],
+  ["Al-Alaq", "The Clot"],
+  ["Al-Qadr", "The Power, Fate"],
+  ["Al-Bayyina", "The Evidence"],
+  ["Az-Zalzala", "The Earthquake"],
+  ["Al-Aadiyaat", "The Chargers"],
+  ["Al-Qaari'a", "The Calamity"],
+  ["At-Takaathur", "Competition"],
+  ["Al-Asr", "The Declining Day, Epoch"],
+  ["Al-Humaza", "The Traducer"],
+  ["Al-Fil", "The Elephant"],
+  ["Quraish", "Quraysh"],
+  ["Al-Maa'un", "Almsgiving"],
+  ["Al-Kawthar", "Abundance"],
+  ["Al-Kaafiroon", "The Disbelievers"],
+  ["An-Nasr", "Divine Support"],
+  ["Al-Masad", "The Palm Fibre"],
+  ["Al-Ikhlaas", "Sincerity"],
+  ["Al-Falaq", "The Dawn"],
+  ["An-Naas", "Mankind"]
+];
+
+const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];
+
+exports.HizbQuarterList = HizbQuarterList;
+exports.JuzList = JuzList;
+exports.ManzilList = ManzilList;
+exports.PageList = PageList;
+exports.RukuList = RukuList;
+exports.SajdaList = SajdaList;
+exports.SuraList = SuraList;
+exports.ayaStringSplitter = ayaStringSplitter;
+exports.checkValidAyahId = checkValidAyahId;
+exports.checkValidSurah = checkValidSurah;
+exports.checkValidSurahAyah = checkValidSurahAyah;
+exports.findAyaidBySurah = findAyaidBySurah;
+exports.findJuz = findJuz;
+exports.findJuzAndShift = findJuzAndShift;
+exports.findJuzByAyaid = findJuzByAyaid;
+exports.findJuzHizb = findJuzHizb;
+exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
+exports.findJuzMetaBySurah = findJuzMetaBySurah;
+exports.findPage = findPage;
+exports.findRangeAroundAyah = findRangeAroundAyah;
+exports.findSurahByAyaid = findSurahByAyaid;
+exports.getAyaCountinSura = getAyaCountinSura;
+exports.getSurahMeta = getSurahMeta;
+exports.isAyahJuzFirst = isAyahJuzFirst;
+exports.isAyahPageFirst = isAyahPageFirst;
+exports.meta = meta;
+exports.nextAyah = nextAyah;
+exports.pageMeta = pageMeta;
+exports.prevAyah = prevAyah;
+exports.suraNamesEn = suraNames$1;
+exports.suraNamesRu = suraNames;
diff --git a/dist/index.d.cts b/dist/index.d.cts
new file mode 100644
index 0000000..8a82018
--- /dev/null
+++ b/dist/index.d.cts
@@ -0,0 +1,260 @@
+type QuranMeta = {
+    numAyas: number;
+    numSuras: number;
+    numPages: number;
+    numJuzs: number;
+    manzilCount: number;
+};
+declare const meta: Readonly<QuranMeta>;
+
+type Surah = number;
+type AyahNo = number;
+type AyahId = number;
+type Page = number;
+type Juz = number;
+type JuzHizb = {
+    juz: Juz;
+    hizb: number;
+    id: number;
+};
+type SurahAyah = [Surah, AyahNo];
+type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+type PageMeta = {
+    pageNum: Page;
+    first: SurahAyah;
+    last: SurahAyah;
+};
+type JuzMeta = {
+    leftjuz: Juz;
+    ayahsBetweenJuzSurah: number;
+    rightJuz: Juz;
+    leftAyahId: AyahId;
+    rightAyahId: AyahId;
+};
+type SajdaType = "recommended" | "obligatory";
+type Sajda = [AyahId, SajdaType];
+type SurahMeta = [
+    startAyahId: AyahId,
+    ayahCount: number,
+    surahOrder: number,
+    rukuCount: number,
+    name: string,
+    isMeccan: boolean,
+    page: Page
+];
+type SuraName = [name: string, translitName: string];
+
+/**
+ *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
+ * @param {*} str String of type "x:y" or "x:y1-y2"
+ * @returns {array} array [x,y] or [x,[y1,y2]] respectively
+ */
+declare function ayaStringSplitter(str: string): SurahAyahSegment;
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+declare function findJuzByAyaid(ayaId: AyahId): Juz;
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
+
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+declare function getAyaCountinSura(surah: Surah): number;
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+declare function getSurahMeta(surah: Surah): SurahMeta;
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+declare const HizbQuarterList: AyahId[];
+
+declare const JuzList: AyahId[];
+
+declare const ManzilList: AyahId[];
+
+declare const PageList: AyahId[];
+
+declare const RukuList: AyahId[];
+
+declare const SajdaList: Sajda[];
+
+declare const SuraList: SurahMeta[];
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+declare function pageMeta(pageNum: Page): PageMeta;
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
+
+declare const suraNames$1: (SuraName | [])[];
+
+declare const suraNames: (SuraName | [])[];
+
+export { type AyahId, type AyahNo, HizbQuarterList, type Juz, type JuzHizb, JuzList, type JuzMeta, ManzilList, type Page, PageList, type PageMeta, type QuranMeta, RukuList, type Sajda, SajdaList, type SajdaType, SuraList, type SuraName, type Surah, type SurahAyah, type SurahAyahSegment, type SurahMeta, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/index.d.mts b/dist/index.d.mts
new file mode 100644
index 0000000..8a82018
--- /dev/null
+++ b/dist/index.d.mts
@@ -0,0 +1,260 @@
+type QuranMeta = {
+    numAyas: number;
+    numSuras: number;
+    numPages: number;
+    numJuzs: number;
+    manzilCount: number;
+};
+declare const meta: Readonly<QuranMeta>;
+
+type Surah = number;
+type AyahNo = number;
+type AyahId = number;
+type Page = number;
+type Juz = number;
+type JuzHizb = {
+    juz: Juz;
+    hizb: number;
+    id: number;
+};
+type SurahAyah = [Surah, AyahNo];
+type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+type PageMeta = {
+    pageNum: Page;
+    first: SurahAyah;
+    last: SurahAyah;
+};
+type JuzMeta = {
+    leftjuz: Juz;
+    ayahsBetweenJuzSurah: number;
+    rightJuz: Juz;
+    leftAyahId: AyahId;
+    rightAyahId: AyahId;
+};
+type SajdaType = "recommended" | "obligatory";
+type Sajda = [AyahId, SajdaType];
+type SurahMeta = [
+    startAyahId: AyahId,
+    ayahCount: number,
+    surahOrder: number,
+    rukuCount: number,
+    name: string,
+    isMeccan: boolean,
+    page: Page
+];
+type SuraName = [name: string, translitName: string];
+
+/**
+ *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
+ * @param {*} str String of type "x:y" or "x:y1-y2"
+ * @returns {array} array [x,y] or [x,[y1,y2]] respectively
+ */
+declare function ayaStringSplitter(str: string): SurahAyahSegment;
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+declare function findJuzByAyaid(ayaId: AyahId): Juz;
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
+
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+declare function getAyaCountinSura(surah: Surah): number;
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+declare function getSurahMeta(surah: Surah): SurahMeta;
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+declare const HizbQuarterList: AyahId[];
+
+declare const JuzList: AyahId[];
+
+declare const ManzilList: AyahId[];
+
+declare const PageList: AyahId[];
+
+declare const RukuList: AyahId[];
+
+declare const SajdaList: Sajda[];
+
+declare const SuraList: SurahMeta[];
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+declare function pageMeta(pageNum: Page): PageMeta;
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
+
+declare const suraNames$1: (SuraName | [])[];
+
+declare const suraNames: (SuraName | [])[];
+
+export { type AyahId, type AyahNo, HizbQuarterList, type Juz, type JuzHizb, JuzList, type JuzMeta, ManzilList, type Page, PageList, type PageMeta, type QuranMeta, RukuList, type Sajda, SajdaList, type SajdaType, SuraList, type SuraName, type Surah, type SurahAyah, type SurahAyahSegment, type SurahMeta, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/index.d.ts b/dist/index.d.ts
new file mode 100644
index 0000000..8a82018
--- /dev/null
+++ b/dist/index.d.ts
@@ -0,0 +1,260 @@
+type QuranMeta = {
+    numAyas: number;
+    numSuras: number;
+    numPages: number;
+    numJuzs: number;
+    manzilCount: number;
+};
+declare const meta: Readonly<QuranMeta>;
+
+type Surah = number;
+type AyahNo = number;
+type AyahId = number;
+type Page = number;
+type Juz = number;
+type JuzHizb = {
+    juz: Juz;
+    hizb: number;
+    id: number;
+};
+type SurahAyah = [Surah, AyahNo];
+type SurahAyahSegment = [Surah, AyahNo | [AyahNo, AyahNo]];
+type PageMeta = {
+    pageNum: Page;
+    first: SurahAyah;
+    last: SurahAyah;
+};
+type JuzMeta = {
+    leftjuz: Juz;
+    ayahsBetweenJuzSurah: number;
+    rightJuz: Juz;
+    leftAyahId: AyahId;
+    rightAyahId: AyahId;
+};
+type SajdaType = "recommended" | "obligatory";
+type Sajda = [AyahId, SajdaType];
+type SurahMeta = [
+    startAyahId: AyahId,
+    ayahCount: number,
+    surahOrder: number,
+    rukuCount: number,
+    name: string,
+    isMeccan: boolean,
+    page: Page
+];
+type SuraName = [name: string, translitName: string];
+
+/**
+ *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
+ * @param {*} str String of type "x:y" or "x:y1-y2"
+ * @returns {array} array [x,y] or [x,[y1,y2]] respectively
+ */
+declare function ayaStringSplitter(str: string): SurahAyahSegment;
+
+/**
+ * Get the ayah ID for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The ayah ID for the given surah and ayah number.
+ */
+declare function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId;
+
+/**
+ * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to.
+ */
+declare function findJuz(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
+ *
+ * @param surah - The surah (chapter) that contains the ayah.
+ * @param ayah - The ayah (verse) number.
+ * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
+ * @returns An object containing the following properties:
+ *   - `juz`: The juz (section) that contains the ayah.
+ *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
+ *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
+ */
+declare function findJuzAndShift(surah: Surah, ayah: AyahNo, ayahMode?: boolean): {
+    juz: Juz;
+    leftAyahId: AyahId;
+    ayahsBetweenJuzSurah: number;
+};
+
+/**
+ * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
+ *
+ * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
+ * @returns The Juz (part) of the Quran that contains the given Ayah ID.
+ */
+declare function findJuzByAyaid(ayaId: AyahId): Juz;
+
+/**
+ * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
+ */
+declare function findJuzHizb(surah: Surah, ayah?: AyahNo, ayahMode?: boolean): JuzHizb;
+
+/**
+ * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ *
+ * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
+ * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
+ */
+declare function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb;
+
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
+
+/**
+ * Finds the page number for the given Surah and Ayah number.
+ *
+ * @param surah - The Surah to find the page for.
+ * @param ayah - The Ayah number to find the page for.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
+ * @returns The page number for the given Surah and Ayah.
+ */
+declare function findPage(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Page;
+
+/**
+ * ALternative deprecated method
+ * @param {*} pageNum
+ */
+/**
+ * Find range containing ayah according to the mode
+ * @param surah
+ * @param ayah
+ * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
+ * default is all
+ */
+declare function findRangeAroundAyah(surah: Surah, ayah: AyahNo, mode: "juz" | "surah" | "ayah" | "page" | "all", ayahMode?: boolean): SurahAyah;
+
+/**
+ * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
+ *
+ * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
+ * @returns An array containing the Surah number and the Ayah number within that Surah.
+ */
+declare function findSurahByAyaid(ayaId: AyahId): SurahAyah;
+
+/**
+ * Get the number of ayahs (verses) in the specified surah.
+ * @param surah - The surah number.
+ * @returns The number of ayahs in the specified surah.
+ */
+declare function getAyaCountinSura(surah: Surah): number;
+
+/**
+ * Gets the metadata for the specified Surah.
+ *
+ * @param surah - The Surah to get the metadata for.
+ * @returns The metadata for the specified Surah.
+ */
+declare function getSurahMeta(surah: Surah): SurahMeta;
+
+/**
+ * Returns the Juz (part) number that the given Ayah (verse) belongs to.
+ *
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
+ * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
+ */
+declare function isAyahJuzFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+/**
+ * Determines if the given ayah is the first ayah of a juz.
+ *
+ * @param surah - The surah number.
+ * @param ayah - The ayah number.
+ * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
+ * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
+ */
+declare function isAyahPageFirst(surah: Surah, ayah: AyahNo, ayahMode?: boolean): Juz;
+
+declare const HizbQuarterList: AyahId[];
+
+declare const JuzList: AyahId[];
+
+declare const ManzilList: AyahId[];
+
+declare const PageList: AyahId[];
+
+declare const RukuList: AyahId[];
+
+declare const SajdaList: Sajda[];
+
+declare const SuraList: SurahMeta[];
+
+/**
+ * Get the next ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the next ayah.
+ */
+declare function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Retrieves the page metadata for the specified page number.
+ *
+ * @param pageNum - The page number to retrieve metadata for.
+ * @returns The page metadata, including the first and last ayah IDs on the page.
+ * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
+ */
+declare function pageMeta(pageNum: Page): PageMeta;
+
+/**
+ * Get the previous ayah for the given surah and ayah number.
+ * @param surah - The surah number.
+ * @param ayah - The ayah number within the surah.
+ * @returns The surah and ayah number of the previous ayah.
+ */
+declare function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah;
+
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
+
+declare const suraNames$1: (SuraName | [])[];
+
+declare const suraNames: (SuraName | [])[];
+
+export { type AyahId, type AyahNo, HizbQuarterList, type Juz, type JuzHizb, JuzList, type JuzMeta, ManzilList, type Page, PageList, type PageMeta, type QuranMeta, RukuList, type Sajda, SajdaList, type SajdaType, SuraList, type SuraName, type Surah, type SurahAyah, type SurahAyahSegment, type SurahMeta, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/index.mjs b/dist/index.mjs
new file mode 100644
index 0000000..10fe5a5
--- /dev/null
+++ b/dist/index.mjs
@@ -0,0 +1,2069 @@
+/*! 
+ * Quran Meta library 2.5.1
+ *
+ * Released under the MIT license
+ */
+
+const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
+
+const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];
+
+function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}
+
+function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}
+
+function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}
+
+function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
+
+function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}
+
+const 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
+];
+
+function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}
+
+function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}
+
+function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}
+
+function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
+
+const 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
+];
+
+function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}
+
+function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}
+
+function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}
+
+const 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
+];
+
+function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}
+
+function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}
+
+function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
+
+function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}
+
+function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}
+
+const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];
+
+const 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
+];
+
+const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];
+
+function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
+
+function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}
+
+function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
+
+const suraNames$1 = [
+  [],
+  ["Al-Faatiha", "The Opening"],
+  ["Al-Baqara", "The Cow"],
+  ["Aal-i-Imraan", "The Family of Imraan"],
+  ["An-Nisaa", "The Women"],
+  ["Al-Maaida", "The Table"],
+  ["Al-An'aam", "The Cattle"],
+  ["Al-A'raaf", "The Heights"],
+  ["Al-Anfaal", "The Spoils of War"],
+  ["At-Tawba", "The Repentance"],
+  ["Yunus", "Jonas"],
+  ["Hud", "Hud"],
+  ["Yusuf", "Joseph"],
+  ["Ar-Ra'd", "The Thunder"],
+  ["Ibrahim", "Abraham"],
+  ["Al-Hijr", "The Rock"],
+  ["An-Nahl", "The Bee"],
+  ["Al-Israa", "The Night Journey"],
+  ["Al-Kahf", "The Cave"],
+  ["Maryam", "Mary"],
+  ["Taa-Haa", "Taa-Haa"],
+  ["Al-Anbiyaa", "The Prophets"],
+  ["Al-Hajj", "The Pilgrimage"],
+  ["Al-Muminoon", "The Believers"],
+  ["An-Noor", "The Light"],
+  ["Al-Furqaan", "The Criterion"],
+  ["Ash-Shu'araa", "The Poets"],
+  ["An-Naml", "The Ant"],
+  ["Al-Qasas", "The Stories"],
+  ["Al-Ankaboot", "The Spider"],
+  ["Ar-Room", "The Romans"],
+  ["Luqman", "Luqman"],
+  ["As-Sajda", "The Prostration"],
+  ["Al-Ahzaab", "The Clans"],
+  ["Saba", "Sheba"],
+  ["Faatir", "The Originator"],
+  ["Yaseen", "Yaseen"],
+  ["As-Saaffaat", "Those drawn up in Ranks"],
+  ["Saad", "The letter Saad"],
+  ["Az-Zumar", "The Groups"],
+  ["Al-Ghaafir", "The Forgiver"],
+  ["Fussilat", "Explained in detail"],
+  ["Ash-Shura", "Consultation"],
+  ["Az-Zukhruf", "Ornaments of gold"],
+  ["Ad-Dukhaan", "The Smoke"],
+  ["Al-Jaathiya", "Crouching"],
+  ["Al-Ahqaf", "The Dunes"],
+  ["Muhammad", "Muhammad"],
+  ["Al-Fath", "The Victory"],
+  ["Al-Hujuraat", "The Inner Apartments"],
+  ["Qaaf", "The letter Qaaf"],
+  ["Adh-Dhaariyat", "The Winnowing Winds"],
+  ["At-Tur", "The Mount"],
+  ["An-Najm", "The Star"],
+  ["Al-Qamar", "The Moon"],
+  ["Ar-Rahmaan", "The Beneficent"],
+  ["Al-Waaqia", "The Inevitable"],
+  ["Al-Hadid", "The Iron"],
+  ["Al-Mujaadila", "The Pleading Woman"],
+  ["Al-Hashr", "The Exile"],
+  ["Al-Mumtahana", "She that is to be examined"],
+  ["As-Saff", "The Ranks"],
+  ["Al-Jumu'a", "Friday"],
+  ["Al-Munaafiqoon", "The Hypocrites"],
+  ["At-Taghaabun", "Mutual Disillusion"],
+  ["At-Talaaq", "Divorce"],
+  ["At-Tahrim", "The Prohibition"],
+  ["Al-Mulk", "The Sovereignty"],
+  ["Al-Qalam", "The Pen"],
+  ["Al-Haaqqa", "The Reality"],
+  ["Al-Ma'aarij", "The Ascending Stairways"],
+  ["Nooh", "Noah"],
+  ["Al-Jinn", "The Jinn"],
+  ["Al-Muzzammil", "The Enshrouded One"],
+  ["Al-Muddaththir", "The Cloaked One"],
+  ["Al-Qiyaama", "The Resurrection"],
+  ["Al-Insaan", "Man"],
+  ["Al-Mursalaat", "The Emissaries"],
+  ["An-Naba", "The Announcement"],
+  ["An-Naazi'aat", "Those who drag forth"],
+  ["Abasa", "He frowned"],
+  ["At-Takwir", "The Overthrowing"],
+  ["Al-Infitaar", "The Cleaving"],
+  ["Al-Mutaffifin", "Defrauding"],
+  ["Al-Inshiqaaq", "The Splitting Open"],
+  ["Al-Burooj", "The Constellations"],
+  ["At-Taariq", "The Morning Star"],
+  ["Al-A'laa", "The Most High"],
+  ["Al-Ghaashiya", "The Overwhelming"],
+  ["Al-Fajr", "The Dawn"],
+  ["Al-Balad", "The City"],
+  ["Ash-Shams", "The Sun"],
+  ["Al-Lail", "The Night"],
+  ["Ad-Dhuhaa", "The Morning Hours"],
+  ["Ash-Sharh", "The Consolation"],
+  ["At-Tin", "The Fig"],
+  ["Al-Alaq", "The Clot"],
+  ["Al-Qadr", "The Power, Fate"],
+  ["Al-Bayyina", "The Evidence"],
+  ["Az-Zalzala", "The Earthquake"],
+  ["Al-Aadiyaat", "The Chargers"],
+  ["Al-Qaari'a", "The Calamity"],
+  ["At-Takaathur", "Competition"],
+  ["Al-Asr", "The Declining Day, Epoch"],
+  ["Al-Humaza", "The Traducer"],
+  ["Al-Fil", "The Elephant"],
+  ["Quraish", "Quraysh"],
+  ["Al-Maa'un", "Almsgiving"],
+  ["Al-Kawthar", "Abundance"],
+  ["Al-Kaafiroon", "The Disbelievers"],
+  ["An-Nasr", "Divine Support"],
+  ["Al-Masad", "The Palm Fibre"],
+  ["Al-Ikhlaas", "Sincerity"],
+  ["Al-Falaq", "The Dawn"],
+  ["An-Naas", "Mankind"]
+];
+
+const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];
+
+export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/json/sura.ru.ts b/dist/json/sura.ru.ts
deleted file mode 100644
index 9fe3ad1..0000000
--- a/dist/json/sura.ru.ts
+++ /dev/null
@@ -1,118 +0,0 @@
-import { SuraName } from "../types"
-export const suraNames: (SuraName | [])[] = [
-  [],
-  ["Аль-Фатиха", "Открывающая Коран"],
-  ["Аль-Бакара", "Корова"],
-  ["Аль ‘Имран", "Семейство ‘Имрана"],
-  ["Ан-Ниса", "Женщины"],
-  ["Аль-Маида", "Трапеза"],
-  ["Аль-Ан‘ам", "Скот"],
-  ["Аль-А‘раф", "Ограды"],
-  ["Аль-Анфаль", "Военная добыча"],
-  ["Ат-Тауба", "Покаяние"],
-  ["Юнус", "Иона"],
-  ["Худ", "Худ"],
-  ["Юсуф", "Иосиф"],
-  ["Ар-Ра‘д", "Гром"],
-  ["Ибрахим", "Авраам"],
-  ["Аль-Хиджр", "Хиджр"],
-  ["Ан-Нахль", "Пчёлы"],
-  ["Аль-Исра", "Ночной перенос"],
-  ["Аль-Кяхф", "Пещера"],
-  ["Марьям", "Мария"],
-  ["Та, ха", "Та, ха"],
-  ["Аль-Анбия", "Пророки"],
-  ["Аль-Хаджж", "Хадж"],
-  ["Аль-Му’минун", "Верующие"],
-  ["Ан-Нур", "Свет"],
-  ["Аль-Фуркан", "Различение"],
-  ["Аш-Шу‘ара", "Поэты"],
-  ["Ан-Намль", "Муравьи"],
-  ["Аль-Касас", "Рассказ"],
-  ["Аль-‘Анкабут", "Паук"],
-  ["Ар-Рум", "Ромеи"],
-  ["Лукман", "Лукман"],
-  ["Ас-Саджда", "Земной поклон"],
-  ["Аль-Ахзаб", "Полчища"],
-  ["Саба’", "Сава"],
-  ["Фатыр", "Зиждитель"],
-  ["Йа, син", "Йа, син"],
-  ["Ас-Саффат", "Стоящие в ряд"],
-  ["Сад", "Сад"],
-  ["Аз-Зумар", "Толпы"],
-  ["Гафир", "Прощающий"],
-  ["Фуссылят", "Разъяснены"],
-  ["Аш-Шура", "Совет"],
-  ["Аз-Зухруф", "Украшения"],
-  ["Ад-Духан", "Дым"],
-  ["Аль-Джасия", "Коленопреклонённые"],
-  ["Аль-Ахкаф", "Барханы"],
-  ["Мухаммад", "Мухаммад"],
-  ["Аль-Фатх", "Победа"],
-  ["Аль-Худжурат", "Покои"],
-  ["Каф", "Каф"],
-  ["Аз-Зарият", "Рассеивающие"],
-  ["Ат-Тур", "Гора"],
-  ["Ан-Наджм", "Звезда"],
-  ["Аль-Камар", "Луна"],
-  ["Ар-Рахман", "Милостивый"],
-  ["Аль-Ваки‘а", "Неизбежное"],
-  ["Аль-Хадид", "Железо"],
-  ["Аль-Муджадиля", "Препирающаяся"],
-  ["Аль-Хашр", "Сбор"],
-  ["Аль-Мумтахана", "Испытуемая"],
-  ["Ас-Сафф", "Ряд"],
-  ["Аль-Джуму‘а", "Собрание"],
-  ["Аль-Мунафикун", "Лицемеры"],
-  ["Ат-Тагабун", "Обделение"],
-  ["Ат-Таляк", "Развод"],
-  ["Ат-Тахрим", "Запрещение"],
-  ["Аль-Мульк", "Власть"],
-  ["Аль-Калям", "Перо"],
-  ["Аль-Хакка", "Неминуемое"],
-  ["Аль-Ма‘аридж", "Степени"],
-  ["Нух", "Ной"],
-  ["Аль-Джинн", "Джинны"],
-  ["Аль-Муззаммиль", "Закутавшийся"],
-  ["Аль-Муддассир", "Завернувшийся"],
-  ["Аль-Кияма", "Воскресение"],
-  ["Аль-Инсан", "Человек"],
-  ["Аль-Мурсалят", "Посылаемые"],
-  ["Ан-Наба’", "Весть"],
-  ["Ан-Нази‘ат", "Вырывающие"],
-  ["‘Абаса", "Нахмурился"],
-  ["Ат-Таквир", "Сворачивание"],
-  ["Аль-Инфитар", "Раскалывание"],
-  ["Аль-Мутаффифин", "Обвешивающие"],
-  ["Аль-Иншикак", "Разверзнется"],
-  ["Аль-Бурудж", "Созвездия"],
-  ["Ат-Тарик", "Ночной гость"],
-  ["Аль-А‘ля", "Всевышний"],
-  ["Аль-Гашия", "Покрывающее"],
-  ["Аль-Фаджр", "Заря"],
-  ["Аль-Баляд", "Город"],
-  ["Аш-Шамс", "Солнце"],
-  ["Аль-Лейль", "Ночь"],
-  ["Ад-Духа", "Утро"],
-  ["Аль-Инширах", "Раскрытие"],
-  ["Ат-Тин", "Смоковница"],
-  ["Аль-‘Аляк", "Сгусток крови"],
-  ["Аль-Кадр", "Величие"],
-  ["Аль-Баййина", "Ясный довод"],
-  ["Аз-Зальзаля", "Сотрясение"],
-  ["Аль-‘Адият", "Скачущие"],
-  ["Аль-Кари‘а", "Поражающее"],
-  ["Ат-Такясур", "Соперничество"],
-  ["Аль-‘Аср", "Предвечернее время"],
-  ["Аль-Хумаза", "Хулитель"],
-  ["Аль-Филь", "Слон"],
-  ["Курайш", "Курайшиты"],
-  ["Аль-Ма‘ун", "Утварь"],
-  ["Аль-Каусар", "Каусар"],
-  ["Аль-Кяфирун", "Неверующие"],
-  ["Ан-Наср", "Помощь"],
-  ["Аль-Масад", "Пальмовые волокна"],
-  ["Аль-Ихляс", "Очищение веры"],
-  ["Аль-Фаляк", "Рассвет"],
-  ["Ан-Нас", "Люди"],
-]
diff --git a/dist/quran-meta.common.js b/dist/quran-meta.common.js
deleted file mode 100644
index 7c15dc5..0000000
--- a/dist/quran-meta.common.js
+++ /dev/null
@@ -1,816 +0,0 @@
-/*! 
- * Quran Meta library 2.5.1
- *
- * Released under the MIT license
- */
-
-'use strict';
-
-var suraNames$1 = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-
-var suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-
-var 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,
-];
-
-var meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-
-var SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-
-function checkValidSurahAyah(surah, ayah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (!checkValidSurah(surah, checkOnly))
-        return false;
-    var _a = getSurahMeta(surah); _a[0]; var ayahCount = _a[1];
-    if (ayah < 1 || ayah > ayahCount) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Ayah must be between 1 and " + ayahCount);
-    }
-    return true;
-}
-
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
-    var surah = parseInt(surahStr, 10);
-    if (isNaN(surah)) {
-        throw "Error in surah format " + str;
-    }
-    if (!ayahsStr) {
-        throw "Error in data " + str;
-    }
-    var ayahs;
-    if (ayahsStr.includes("-")) {
-        ayahs = ayahsStr.split("-").map(function (a) {
-            var ayah = parseInt(a, 10);
-            if (isNaN(ayah) || ayah === 0) {
-                throw "Error in ayah " + a;
-            }
-            return ayah;
-        });
-        if (ayahs[0] > ayahs[1])
-            throw "Error in ayah range " + str;
-    }
-    else {
-        ayahs = parseInt(ayahsStr, 10);
-        if (isNaN(ayahs) || ayahs === 0) {
-            throw "Error in data " + str;
-        }
-        checkValidSurahAyah(surah, ayahs);
-    }
-    return [surah, ayahs];
-}
-
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-
-function findAyaidBySurah(surah, ayah) {
-    checkValidSurahAyah(surah, ayah);
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-
-var 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,
-];
-
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return [suraNum, ayaId - SuraList[suraNum][0]];
-}
-
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (ayahMode)
-        surah = findSurahByAyaid(ayahId)[0];
-    var surahStartAyahId = SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId
-    };
-}
-
-var 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,
-];
-
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-
-var 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,
-];
-
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-
-function binarySearch(ar, el, compare_fn) {
-    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-    var m = 0;
-    var n = ar.length - 1;
-    while (m <= n) {
-        var k = (n + m) >> 1;
-        var cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-
-function isAyahJuzFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-}
-
-function isAyahPageFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-}
-
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-
-var SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-
-/******************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
-
-
-function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-}
-
-typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
-    var e = new Error(message);
-    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
-};
-
-function pageMeta(pageNum) {
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    var _a = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ], curPage = _a[0], nextPage = _a[1];
-    return {
-        pageNum: pageNum,
-        first: findSurahByAyaid(curPage),
-        last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-    };
-}
-
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-
-exports.HizbQuarterList = HizbQuarterList;
-exports.JuzList = JuzList;
-exports.ManzilList = ManzilList;
-exports.PageList = PageList;
-exports.RukuList = RukuList;
-exports.SajdaList = SajdaList;
-exports.SuraList = SuraList;
-exports.ayaStringSplitter = ayaStringSplitter;
-exports.checkValidAyahId = checkValidAyahId;
-exports.checkValidSurah = checkValidSurah;
-exports.checkValidSurahAyah = checkValidSurahAyah;
-exports.findAyaidBySurah = findAyaidBySurah;
-exports.findJuz = findJuz;
-exports.findJuzAndShift = findJuzAndShift;
-exports.findJuzByAyaid = findJuzByAyaid;
-exports.findJuzHizb = findJuzHizb;
-exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
-exports.findJuzMetaBySurah = findJuzMetaBySurah;
-exports.findPage = findPage;
-exports.findRangeAroundAyah = findRangeAroundAyah;
-exports.findSurahByAyaid = findSurahByAyaid;
-exports.getAyaCountinSura = getAyaCountinSura;
-exports.getSurahMeta = getSurahMeta;
-exports.isAyahJuzFirst = isAyahJuzFirst;
-exports.isAyahPageFirst = isAyahPageFirst;
-exports.meta = meta;
-exports.nextAyah = nextAyah;
-exports.pageMeta = pageMeta;
-exports.prevAyah = prevAyah;
-exports.suraNamesEn = suraNames$1;
-exports.suraNamesRu = suraNames;
-//# sourceMappingURL=quran-meta.common.js.map
diff --git a/dist/quran-meta.common.js.map b/dist/quran-meta.common.js.map
deleted file mode 100644
index 5fe3f35..0000000
--- a/dist/quran-meta.common.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"quran-meta.common.js","sources":["../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/lists/rukuList.ts","../src/const.ts","../src/checkValidSurah.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/checkValidSurahAyah.ts","../src/ayaStringSplitter.ts","../src/checkValidAyahId.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/getAyaCountinSura.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../node_modules/.pnpm/@rollup+plugin-typescript@12.1.0_rollup@4.24.0_tslib@2.7.0_typescript@5.6.2/node_modules/tslib/tslib.es6.js","../src/pageMeta.ts","../src/prevAyah.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n",null,null],"names":["suraNames"],"mappings":"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AAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE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AAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IA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AE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;SChC5C,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IACnE,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,MAAM,CAAV,EAAU,CAAC,GAAG,CAAC,CAAC;AACjD;;ACqBM,SAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;AAC7B,UAAE,IAAI;AACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,QAAQ,IAAI;QACV,KAAK,KAAK,EAAE;AACV,YAAA,IAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAC;AACxC,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC7C;QAED,KAAK,OAAO,EAAE;YACZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD;QAED,KAAK,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACzB;QACD,KAAK,MAAM,EAAE;YACX,IAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC9C,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjD;AAED,QAAA,KAAK,KAAK,CAAC;AACX,QAAA;AACE,YAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC5B;AACH;;AClEM,SAAU,iBAAiB,CAAC,KAAY,EAAA;AAC5C,IAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC;;SCFgB,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,UAA8D,EAAA;IAA9D,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAgD,GAAA,UAAA,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,CAAC,CAAA,EAAA,CAAA,EAAA;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;AACT,IAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;AACrB,IAAA,OAAO,CAAC,IAAI,CAAC,EAAE;QACb,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AACjC,QAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AACX,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;AAAM,aAAA,IAAI,GAAG,GAAG,CAAC,EAAE;AAClB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;SACV;aAAM;AACL,YAAA,OAAO,CAAC,CAAA;SACT;KACF;AACD,IAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf;;SCXc,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAEvC;;SCXgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;AAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;IAEhB,IAAM,MAAM,GAAW,QAAQ;WACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;AAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;AAE1E,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAExC;;ICxBa,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;ACSrE,IAAA,SAAS,GAAY;IAEhC,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;;;ACjBN,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvE,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAqMA;AACO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;AAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,KAAK;AACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7D,CAAC;AAiGD;AACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;AACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;AACrF;;ACrTM,SAAU,QAAQ,CAAC,OAAa,EAAA;IAEpC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEnE,IAAA,IAAA,EAAwC,GAAA;QAC5C,QAAQ,CAAC,OAAO,CAAC;AACjB,QAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,KAAA,EAHM,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,QAGvB,CAAC;IAEF,OAAO;AACL,QAAA,OAAO,EAAA,OAAA;AACP,QAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;AAChC,QAAA,IAAI,oBAAM,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAC,IAAA,CAAA;KAC1C,CAAC;AACJ;;AChBgB,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;IACjD,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[30]}
\ No newline at end of file
diff --git a/dist/quran-meta.esm.browser.js b/dist/quran-meta.esm.browser.js
deleted file mode 100644
index b494d9c..0000000
--- a/dist/quran-meta.esm.browser.js
+++ /dev/null
@@ -1,738 +0,0 @@
-/*! 
- * Quran Meta library 2.5.1
- *
- * Released under the MIT license
- */
-
-const suraNames$1 = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-
-const suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-
-const 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,
-];
-
-const meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
-function checkValidSurah(surah, checkOnly = false) {
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-
-const SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-
-function checkValidSurahAyah(surah, ayah, checkOnly = false) {
-    if (!checkValidSurah(surah, checkOnly))
-        return false;
-    const [startAyahId, ayahCount] = getSurahMeta(surah);
-    if (ayah < 1 || ayah > ayahCount) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Ayah must be between 1 and " + ayahCount);
-    }
-    return true;
-}
-
-function ayaStringSplitter(str) {
-    const [surahStr, ayahsStr] = str.trim().split(":");
-    const surah = parseInt(surahStr, 10);
-    if (isNaN(surah)) {
-        throw "Error in surah format " + str;
-    }
-    if (!ayahsStr) {
-        throw "Error in data " + str;
-    }
-    let ayahs;
-    if (ayahsStr.includes("-")) {
-        ayahs = ayahsStr.split("-").map(a => {
-            const ayah = parseInt(a, 10);
-            if (isNaN(ayah) || ayah === 0) {
-                throw "Error in ayah " + a;
-            }
-            return ayah;
-        });
-        if (ayahs[0] > ayahs[1])
-            throw "Error in ayah range " + str;
-    }
-    else {
-        ayahs = parseInt(ayahsStr, 10);
-        if (isNaN(ayahs) || ayahs === 0) {
-            throw "Error in data " + str;
-        }
-        checkValidSurahAyah(surah, ayahs);
-    }
-    return [surah, ayahs];
-}
-
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-
-function findAyaidBySurah(surah, ayah) {
-    checkValidSurahAyah(surah, ayah);
-    const [startAyahId] = getSurahMeta(surah);
-    return startAyahId + ayah;
-}
-
-const 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,
-];
-
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(x => x > ayaId) - 1;
-}
-
-function findJuz(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
-    return [suraNum, ayaId - SuraList[suraNum][0]];
-}
-
-function findJuzAndShift(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    const juz = findJuzByAyaid(ayahId);
-    const leftAyahId = JuzList[juz];
-    if (ayahMode)
-        [surah] = findSurahByAyaid(ayahId);
-    const [surahStartAyahId] = SuraList[surah];
-    return {
-        juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId
-    };
-}
-
-const 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,
-];
-
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const juz = findJuzByAyaid(ayaId);
-    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
-    return { juz, hizb: id % 8 || 8, id };
-}
-
-function findJuzHizb(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-
-function findJuzMetaBySurah(surah, ayah = 1) {
-    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
-    let rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz,
-        ayahsBetweenJuzSurah,
-        rightJuz,
-        leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-
-const 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,
-];
-
-function findPage(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(x => x > ayahId) - 1;
-}
-
-function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            const juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            const page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-
-function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
-    let m = 0;
-    let n = ar.length - 1;
-    while (m <= n) {
-        const k = (n + m) >> 1;
-        const cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-
-function isAyahJuzFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-}
-
-function isAyahPageFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-}
-
-const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-
-const SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-
-function pageMeta(pageNum) {
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    const [curPage, nextPage] = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ];
-    return {
-        pageNum,
-        first: findSurahByAyaid(curPage),
-        last: [...findSurahByAyaid(nextPage - 1)],
-    };
-}
-
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-
-export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
diff --git a/dist/quran-meta.esm.browser.min.js b/dist/quran-meta.esm.browser.min.js
deleted file mode 100644
index 47b889e..0000000
--- a/dist/quran-meta.esm.browser.min.js
+++ /dev/null
@@ -1 +0,0 @@
-const a=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],e=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]],n=[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],r=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7});function t(a,e=!1){if(a<1||a>r.numSuras){if(e)return!1;throw new RangeError("Surah must be between 1 and "+r.numSuras)}return!0}const i=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]];function h(a){return t(a),i[a]}function o(a,e,n=!1){if(!t(a,n))return!1;const[r,i]=h(a);if(e<1||e>i){if(n)return!1;throw new RangeError("Ayah must be between 1 and "+i)}return!0}function u(a){const[e,n]=a.trim().split(":"),r=parseInt(e,10);if(isNaN(r))throw"Error in surah format "+a;if(!n)throw"Error in data "+a;let t;if(n.includes("-")){if(t=n.split("-").map((a=>{const e=parseInt(a,10);if(isNaN(e)||0===e)throw"Error in ayah "+a;return e})),t[0]>t[1])throw"Error in ayah range "+a}else{if(t=parseInt(n,10),isNaN(t)||0===t)throw"Error in data "+a;o(r,t)}return[r,t]}function s(a){if(a<1||a>r.numAyas)throw new RangeError("ayaid must be between 1 and "+r.numAyas);return!0}function l(a,e){o(a,e);const[n]=h(a);return n+e}const A=[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];function T(a){return s(a),A.findIndex((e=>e>a))-1}function m(a,e=1,n=!1){return T(n?e:o(a,e)&&l(a,e))}function d(a){s(a);const e=i.findIndex((e=>e[0]>=a))-1;return[e,a-i[e][0]]}function c(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e),h=T(r),o=A[h];n&&([a]=d(r));const[u]=i[a];return{juz:h,ayahsBetweenJuzSurah:u-o+1,leftAyahId:o}}const f=[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];function g(a){s(a);const e=T(a),n=f.findIndex((e=>e>a))-1;return{juz:e,hizb:n%8||8,id:n}}function y(a,e=1,n=!1){return g(n?e:t(a)&&l(a,e))}function w(a,e=1){const{juz:n,ayahsBetweenJuzSurah:t,leftAyahId:i}=c(a,e);let h=n;for(;h<r.numJuzs&&d(A[h+1])[0]==a;)h++;return{leftjuz:n,ayahsBetweenJuzSurah:t,rightJuz:h,leftAyahId:i,rightAyahId:A[h+1]}}const b=[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];function S(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e);return b.findIndex((a=>a>r))-1}function p(a,e,n,h=!1){const o=h?e:t(a)&&l(a,e);switch(n){case"juz":{const a=T(o);return[A[a],A[a+1]-1]}case"surah":return[i[a][0]+1,i[a+1][0]];case"ayah":return[o,o];case"page":{const a=S(-1,o,!0);return[b[a],b[a+1]-1]}default:return[1,r.numAyas]}}function M(a){return h(a)[1]}function z(a,e,n=(a,e)=>a-e){let r=0,t=a.length-1;for(;r<=t;){const i=t+r>>1,h=n(e,a[i]);if(h>0)r=i+1;else{if(!(h<0))return i;t=i-1}}return-r-1}function I(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e);return z(A,r)}function N(a,e,n=!1){const r=n?s(e)&&e:t(a)&&l(a,e);return z(b,r)}const E=[0,1,670,1365,2030,2933,3789,4631,6237],C=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]];function j(a,e){if(a<1||a>r.numSuras)throw new RangeError("Surah must be between 1 and "+r.numSuras);const n=l(a,e);return d(n==r.numAyas?1:n+1)}function q(a){if(a<1||a>r.numPages)throw new RangeError("pagenum must be between 1 and "+r.numPages);const[e,n]=[b[a],b[a+1]];return{pageNum:a,first:d(e),last:[...d(n-1)]}}function H(a,e){t(a);const n=l(a,e);return d(1==n?r.numAyas:n-1)}export{f as HizbQuarterList,A as JuzList,E as ManzilList,b as PageList,n as RukuList,C as SajdaList,i as SuraList,u as ayaStringSplitter,s as checkValidAyahId,t as checkValidSurah,o as checkValidSurahAyah,l as findAyaidBySurah,m as findJuz,c as findJuzAndShift,T as findJuzByAyaid,y as findJuzHizb,g as findJuzHizbByAyaid,w as findJuzMetaBySurah,S as findPage,p as findRangeAroundAyah,d as findSurahByAyaid,M as getAyaCountinSura,h as getSurahMeta,I as isAyahJuzFirst,N as isAyahPageFirst,r as meta,j as nextAyah,q as pageMeta,H as prevAyah,a as suraNamesEn,e as suraNamesRu};
diff --git a/dist/quran-meta.esm.js b/dist/quran-meta.esm.js
deleted file mode 100644
index 782866b..0000000
--- a/dist/quran-meta.esm.js
+++ /dev/null
@@ -1,784 +0,0 @@
-/*! 
- * Quran Meta library 2.5.1
- *
- * Released under the MIT license
- */
-
-var suraNames$1 = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-
-var suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-
-var 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,
-];
-
-var meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-
-var SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-
-function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-
-function checkValidSurahAyah(surah, ayah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (!checkValidSurah(surah, checkOnly))
-        return false;
-    var _a = getSurahMeta(surah); _a[0]; var ayahCount = _a[1];
-    if (ayah < 1 || ayah > ayahCount) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Ayah must be between 1 and " + ayahCount);
-    }
-    return true;
-}
-
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
-    var surah = parseInt(surahStr, 10);
-    if (isNaN(surah)) {
-        throw "Error in surah format " + str;
-    }
-    if (!ayahsStr) {
-        throw "Error in data " + str;
-    }
-    var ayahs;
-    if (ayahsStr.includes("-")) {
-        ayahs = ayahsStr.split("-").map(function (a) {
-            var ayah = parseInt(a, 10);
-            if (isNaN(ayah) || ayah === 0) {
-                throw "Error in ayah " + a;
-            }
-            return ayah;
-        });
-        if (ayahs[0] > ayahs[1])
-            throw "Error in ayah range " + str;
-    }
-    else {
-        ayahs = parseInt(ayahsStr, 10);
-        if (isNaN(ayahs) || ayahs === 0) {
-            throw "Error in data " + str;
-        }
-        checkValidSurahAyah(surah, ayahs);
-    }
-    return [surah, ayahs];
-}
-
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-
-function findAyaidBySurah(surah, ayah) {
-    checkValidSurahAyah(surah, ayah);
-    var startAyahId = getSurahMeta(surah)[0];
-    return startAyahId + ayah;
-}
-
-var 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,
-];
-
-function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-
-function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return [suraNum, ayaId - SuraList[suraNum][0]];
-}
-
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    var juz = findJuzByAyaid(ayahId);
-    var leftAyahId = JuzList[juz];
-    if (ayahMode)
-        surah = findSurahByAyaid(ayahId)[0];
-    var surahStartAyahId = SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId
-    };
-}
-
-var 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,
-];
-
-function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    var juz = findJuzByAyaid(ayaId);
-    var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-
-var 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,
-];
-
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-
-function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-
-function binarySearch(ar, el, compare_fn) {
-    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-    var m = 0;
-    var n = ar.length - 1;
-    while (m <= n) {
-        var k = (n + m) >> 1;
-        var cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-
-function isAyahJuzFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-}
-
-function isAyahPageFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-}
-
-var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-
-var SajdaList = [
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-
-/******************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
-
-
-function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-}
-
-typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
-    var e = new Error(message);
-    return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
-};
-
-function pageMeta(pageNum) {
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    var _a = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ], curPage = _a[0], nextPage = _a[1];
-    return {
-        pageNum: pageNum,
-        first: findSurahByAyaid(curPage),
-        last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-    };
-}
-
-function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    var ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-
-export { HizbQuarterList, JuzList, ManzilList, PageList, RukuList, SajdaList, SuraList, ayaStringSplitter, checkValidAyahId, checkValidSurah, checkValidSurahAyah, findAyaidBySurah, findJuz, findJuzAndShift, findJuzByAyaid, findJuzHizb, findJuzHizbByAyaid, findJuzMetaBySurah, findPage, findRangeAroundAyah, findSurahByAyaid, getAyaCountinSura, getSurahMeta, isAyahJuzFirst, isAyahPageFirst, meta, nextAyah, pageMeta, prevAyah, suraNames$1 as suraNamesEn, suraNames as suraNamesRu };
-//# sourceMappingURL=quran-meta.esm.js.map
diff --git a/dist/quran-meta.esm.js.map b/dist/quran-meta.esm.js.map
deleted file mode 100644
index d2e3356..0000000
--- a/dist/quran-meta.esm.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"quran-meta.esm.js","sources":["../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/lists/rukuList.ts","../src/const.ts","../src/checkValidSurah.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/checkValidSurahAyah.ts","../src/ayaStringSplitter.ts","../src/checkValidAyahId.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/getAyaCountinSura.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../node_modules/.pnpm/@rollup+plugin-typescript@12.1.0_rollup@4.24.0_tslib@2.7.0_typescript@5.6.2/node_modules/tslib/tslib.es6.js","../src/pageMeta.ts","../src/prevAyah.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n",null,null],"names":["suraNames"],"mappings":"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E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,I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G,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI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,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;AAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,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","x_google_ignoreList":[30]}
\ No newline at end of file
diff --git a/dist/quran-meta.js b/dist/quran-meta.js
index 478ebed..c28c474 100644
--- a/dist/quran-meta.js
+++ b/dist/quran-meta.js
@@ -5,818 +5,2104 @@
  */
 
 (function (global, factory) {
-    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
-    typeof define === 'function' && define.amd ? define(['exports'], factory) :
-    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.quranMeta = {}));
+  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+  typeof define === 'function' && define.amd ? define(['exports'], factory) :
+  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.quranMeta = {}));
 })(this, (function (exports) { 'use strict';
 
-    var suraNames$1 = [
-        [],
-        ["Al-Faatiha", "The Opening"],
-        ["Al-Baqara", "The Cow"],
-        ["Aal-i-Imraan", "The Family of Imraan"],
-        ["An-Nisaa", "The Women"],
-        ["Al-Maaida", "The Table"],
-        ["Al-An'aam", "The Cattle"],
-        ["Al-A'raaf", "The Heights"],
-        ["Al-Anfaal", "The Spoils of War"],
-        ["At-Tawba", "The Repentance"],
-        ["Yunus", "Jonas"],
-        ["Hud", "Hud"],
-        ["Yusuf", "Joseph"],
-        ["Ar-Ra'd", "The Thunder"],
-        ["Ibrahim", "Abraham"],
-        ["Al-Hijr", "The Rock"],
-        ["An-Nahl", "The Bee"],
-        ["Al-Israa", "The Night Journey"],
-        ["Al-Kahf", "The Cave"],
-        ["Maryam", "Mary"],
-        ["Taa-Haa", "Taa-Haa"],
-        ["Al-Anbiyaa", "The Prophets"],
-        ["Al-Hajj", "The Pilgrimage"],
-        ["Al-Muminoon", "The Believers"],
-        ["An-Noor", "The Light"],
-        ["Al-Furqaan", "The Criterion"],
-        ["Ash-Shu'araa", "The Poets"],
-        ["An-Naml", "The Ant"],
-        ["Al-Qasas", "The Stories"],
-        ["Al-Ankaboot", "The Spider"],
-        ["Ar-Room", "The Romans"],
-        ["Luqman", "Luqman"],
-        ["As-Sajda", "The Prostration"],
-        ["Al-Ahzaab", "The Clans"],
-        ["Saba", "Sheba"],
-        ["Faatir", "The Originator"],
-        ["Yaseen", "Yaseen"],
-        ["As-Saaffaat", "Those drawn up in Ranks"],
-        ["Saad", "The letter Saad"],
-        ["Az-Zumar", "The Groups"],
-        ["Al-Ghaafir", "The Forgiver"],
-        ["Fussilat", "Explained in detail"],
-        ["Ash-Shura", "Consultation"],
-        ["Az-Zukhruf", "Ornaments of gold"],
-        ["Ad-Dukhaan", "The Smoke"],
-        ["Al-Jaathiya", "Crouching"],
-        ["Al-Ahqaf", "The Dunes"],
-        ["Muhammad", "Muhammad"],
-        ["Al-Fath", "The Victory"],
-        ["Al-Hujuraat", "The Inner Apartments"],
-        ["Qaaf", "The letter Qaaf"],
-        ["Adh-Dhaariyat", "The Winnowing Winds"],
-        ["At-Tur", "The Mount"],
-        ["An-Najm", "The Star"],
-        ["Al-Qamar", "The Moon"],
-        ["Ar-Rahmaan", "The Beneficent"],
-        ["Al-Waaqia", "The Inevitable"],
-        ["Al-Hadid", "The Iron"],
-        ["Al-Mujaadila", "The Pleading Woman"],
-        ["Al-Hashr", "The Exile"],
-        ["Al-Mumtahana", "She that is to be examined"],
-        ["As-Saff", "The Ranks"],
-        ["Al-Jumu'a", "Friday"],
-        ["Al-Munaafiqoon", "The Hypocrites"],
-        ["At-Taghaabun", "Mutual Disillusion"],
-        ["At-Talaaq", "Divorce"],
-        ["At-Tahrim", "The Prohibition"],
-        ["Al-Mulk", "The Sovereignty"],
-        ["Al-Qalam", "The Pen"],
-        ["Al-Haaqqa", "The Reality"],
-        ["Al-Ma'aarij", "The Ascending Stairways"],
-        ["Nooh", "Noah"],
-        ["Al-Jinn", "The Jinn"],
-        ["Al-Muzzammil", "The Enshrouded One"],
-        ["Al-Muddaththir", "The Cloaked One"],
-        ["Al-Qiyaama", "The Resurrection"],
-        ["Al-Insaan", "Man"],
-        ["Al-Mursalaat", "The Emissaries"],
-        ["An-Naba", "The Announcement"],
-        ["An-Naazi'aat", "Those who drag forth"],
-        ["Abasa", "He frowned"],
-        ["At-Takwir", "The Overthrowing"],
-        ["Al-Infitaar", "The Cleaving"],
-        ["Al-Mutaffifin", "Defrauding"],
-        ["Al-Inshiqaaq", "The Splitting Open"],
-        ["Al-Burooj", "The Constellations"],
-        ["At-Taariq", "The Morning Star"],
-        ["Al-A'laa", "The Most High"],
-        ["Al-Ghaashiya", "The Overwhelming"],
-        ["Al-Fajr", "The Dawn"],
-        ["Al-Balad", "The City"],
-        ["Ash-Shams", "The Sun"],
-        ["Al-Lail", "The Night"],
-        ["Ad-Dhuhaa", "The Morning Hours"],
-        ["Ash-Sharh", "The Consolation"],
-        ["At-Tin", "The Fig"],
-        ["Al-Alaq", "The Clot"],
-        ["Al-Qadr", "The Power, Fate"],
-        ["Al-Bayyina", "The Evidence"],
-        ["Az-Zalzala", "The Earthquake"],
-        ["Al-Aadiyaat", "The Chargers"],
-        ["Al-Qaari'a", "The Calamity"],
-        ["At-Takaathur", "Competition"],
-        ["Al-Asr", "The Declining Day, Epoch"],
-        ["Al-Humaza", "The Traducer"],
-        ["Al-Fil", "The Elephant"],
-        ["Quraish", "Quraysh"],
-        ["Al-Maa'un", "Almsgiving"],
-        ["Al-Kawthar", "Abundance"],
-        ["Al-Kaafiroon", "The Disbelievers"],
-        ["An-Nasr", "Divine Support"],
-        ["Al-Masad", "The Palm Fibre"],
-        ["Al-Ikhlaas", "Sincerity"],
-        ["Al-Falaq", "The Dawn"],
-        ["An-Naas", "Mankind"],
-    ];
-
-    var suraNames = [
-        [],
-        ["Аль-Фатиха", "Открывающая Коран"],
-        ["Аль-Бакара", "Корова"],
-        ["Аль ‘Имран", "Семейство ‘Имрана"],
-        ["Ан-Ниса", "Женщины"],
-        ["Аль-Маида", "Трапеза"],
-        ["Аль-Ан‘ам", "Скот"],
-        ["Аль-А‘раф", "Ограды"],
-        ["Аль-Анфаль", "Военная добыча"],
-        ["Ат-Тауба", "Покаяние"],
-        ["Юнус", "Иона"],
-        ["Худ", "Худ"],
-        ["Юсуф", "Иосиф"],
-        ["Ар-Ра‘д", "Гром"],
-        ["Ибрахим", "Авраам"],
-        ["Аль-Хиджр", "Хиджр"],
-        ["Ан-Нахль", "Пчёлы"],
-        ["Аль-Исра", "Ночной перенос"],
-        ["Аль-Кяхф", "Пещера"],
-        ["Марьям", "Мария"],
-        ["Та, ха", "Та, ха"],
-        ["Аль-Анбия", "Пророки"],
-        ["Аль-Хаджж", "Хадж"],
-        ["Аль-Му’минун", "Верующие"],
-        ["Ан-Нур", "Свет"],
-        ["Аль-Фуркан", "Различение"],
-        ["Аш-Шу‘ара", "Поэты"],
-        ["Ан-Намль", "Муравьи"],
-        ["Аль-Касас", "Рассказ"],
-        ["Аль-‘Анкабут", "Паук"],
-        ["Ар-Рум", "Ромеи"],
-        ["Лукман", "Лукман"],
-        ["Ас-Саджда", "Земной поклон"],
-        ["Аль-Ахзаб", "Полчища"],
-        ["Саба’", "Сава"],
-        ["Фатыр", "Зиждитель"],
-        ["Йа, син", "Йа, син"],
-        ["Ас-Саффат", "Стоящие в ряд"],
-        ["Сад", "Сад"],
-        ["Аз-Зумар", "Толпы"],
-        ["Гафир", "Прощающий"],
-        ["Фуссылят", "Разъяснены"],
-        ["Аш-Шура", "Совет"],
-        ["Аз-Зухруф", "Украшения"],
-        ["Ад-Духан", "Дым"],
-        ["Аль-Джасия", "Коленопреклонённые"],
-        ["Аль-Ахкаф", "Барханы"],
-        ["Мухаммад", "Мухаммад"],
-        ["Аль-Фатх", "Победа"],
-        ["Аль-Худжурат", "Покои"],
-        ["Каф", "Каф"],
-        ["Аз-Зарият", "Рассеивающие"],
-        ["Ат-Тур", "Гора"],
-        ["Ан-Наджм", "Звезда"],
-        ["Аль-Камар", "Луна"],
-        ["Ар-Рахман", "Милостивый"],
-        ["Аль-Ваки‘а", "Неизбежное"],
-        ["Аль-Хадид", "Железо"],
-        ["Аль-Муджадиля", "Препирающаяся"],
-        ["Аль-Хашр", "Сбор"],
-        ["Аль-Мумтахана", "Испытуемая"],
-        ["Ас-Сафф", "Ряд"],
-        ["Аль-Джуму‘а", "Собрание"],
-        ["Аль-Мунафикун", "Лицемеры"],
-        ["Ат-Тагабун", "Обделение"],
-        ["Ат-Таляк", "Развод"],
-        ["Ат-Тахрим", "Запрещение"],
-        ["Аль-Мульк", "Власть"],
-        ["Аль-Калям", "Перо"],
-        ["Аль-Хакка", "Неминуемое"],
-        ["Аль-Ма‘аридж", "Степени"],
-        ["Нух", "Ной"],
-        ["Аль-Джинн", "Джинны"],
-        ["Аль-Муззаммиль", "Закутавшийся"],
-        ["Аль-Муддассир", "Завернувшийся"],
-        ["Аль-Кияма", "Воскресение"],
-        ["Аль-Инсан", "Человек"],
-        ["Аль-Мурсалят", "Посылаемые"],
-        ["Ан-Наба’", "Весть"],
-        ["Ан-Нази‘ат", "Вырывающие"],
-        ["‘Абаса", "Нахмурился"],
-        ["Ат-Таквир", "Сворачивание"],
-        ["Аль-Инфитар", "Раскалывание"],
-        ["Аль-Мутаффифин", "Обвешивающие"],
-        ["Аль-Иншикак", "Разверзнется"],
-        ["Аль-Бурудж", "Созвездия"],
-        ["Ат-Тарик", "Ночной гость"],
-        ["Аль-А‘ля", "Всевышний"],
-        ["Аль-Гашия", "Покрывающее"],
-        ["Аль-Фаджр", "Заря"],
-        ["Аль-Баляд", "Город"],
-        ["Аш-Шамс", "Солнце"],
-        ["Аль-Лейль", "Ночь"],
-        ["Ад-Духа", "Утро"],
-        ["Аль-Инширах", "Раскрытие"],
-        ["Ат-Тин", "Смоковница"],
-        ["Аль-‘Аляк", "Сгусток крови"],
-        ["Аль-Кадр", "Величие"],
-        ["Аль-Баййина", "Ясный довод"],
-        ["Аз-Зальзаля", "Сотрясение"],
-        ["Аль-‘Адият", "Скачущие"],
-        ["Аль-Кари‘а", "Поражающее"],
-        ["Ат-Такясур", "Соперничество"],
-        ["Аль-‘Аср", "Предвечернее время"],
-        ["Аль-Хумаза", "Хулитель"],
-        ["Аль-Филь", "Слон"],
-        ["Курайш", "Курайшиты"],
-        ["Аль-Ма‘ун", "Утварь"],
-        ["Аль-Каусар", "Каусар"],
-        ["Аль-Кяфирун", "Неверующие"],
-        ["Ан-Наср", "Помощь"],
-        ["Аль-Масад", "Пальмовые волокна"],
-        ["Аль-Ихляс", "Очищение веры"],
-        ["Аль-Фаляк", "Рассвет"],
-        ["Ан-Нас", "Люди"],
-    ];
+  const meta = Object.freeze({
+    numAyas: 6236,
+    numSuras: 114,
+    numPages: 604,
+    numJuzs: 30,
+    manzilCount: 7
+  });
 
-    var 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,
-    ];
+  const SuraList = [
+    [-1, -1, -1, -1, "", false, -1],
+    [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+    [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+    [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+    [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+    [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+    [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+    [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+    [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+    [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+    [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+    [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+    [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+    [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+    [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+    [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+    [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+    [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+    [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+    [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+    [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+    [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+    [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+    [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+    [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+    [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+    [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+    [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+    [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+    [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+    [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+    [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+    [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+    [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+    [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+    [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+    [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+    [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+    [3970, 88, 38, 5, "\u0635", true, 453],
+    [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+    [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+    [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+    [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+    [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+    [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+    [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+    [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+    [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+    [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+    [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+    [4630, 45, 34, 3, "\u0642", true, 518],
+    [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+    [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+    [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+    [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+    [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+    [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+    [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+    [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+    [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+    [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+    [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+    [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+    [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+    [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+    [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+    [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+    [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+    [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+    [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+    [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+    [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+    [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+    [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+    [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+    [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+    [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+    [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+    [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+    [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+    [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+    [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+    [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+    [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+    [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+    [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+    [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+    [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+    [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+    [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+    [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+    [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+    [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+    [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+    [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+    [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+    [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+    [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+    [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+    [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+    [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+    [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+    [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+    [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+    [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+    [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+    [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+    [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+    [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+    [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+    [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+    [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+    [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+    [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+    [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+    [6236, 0, -1, -1, "", false, -1]
+  ];
 
-    var meta = Object.freeze({
-        numAyas: 6236,
-        numSuras: 114,
-        numPages: 604,
-        numJuzs: 30,
-        manzilCount: 7,
-    });
-
-    function checkValidSurah(surah, checkOnly) {
-        if (checkOnly === void 0) { checkOnly = false; }
-        if (surah < 1 || surah > meta.numSuras) {
-            if (checkOnly)
-                return false;
-            throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-        }
-        return true;
-    }
+  function getSurahMeta(surah) {
+    checkValidSurah(surah);
+    return SuraList[surah];
+  }
 
-    var SuraList = [
-        [-1, -1, -1, -1, "", false, -1],
-        [0, 7, 5, 1, "الفاتحة", true, 1],
-        [7, 286, 87, 40, "البقرة", false, 2],
-        [293, 200, 89, 20, "آل عمران", false, 50],
-        [493, 176, 92, 24, "النساء", false, 77],
-        [669, 120, 112, 16, "المائدة", false, 107],
-        [789, 165, 55, 20, "الأنعام", true, 128],
-        [954, 206, 39, 24, "الأعراف", true, 151],
-        [1160, 75, 88, 10, "الأنفال", false, 177],
-        [1235, 129, 113, 16, "التوبة", false, 187],
-        [1364, 109, 51, 11, "يونس", true, 208],
-        [1473, 123, 52, 10, "هود", true, 222],
-        [1596, 111, 53, 12, "يوسف", true, 236],
-        [1707, 43, 96, 6, "الرعد", false, 249],
-        [1750, 52, 72, 7, "ابراهيم", true, 256],
-        [1802, 99, 54, 6, "الحجر", true, 262],
-        [1901, 128, 70, 16, "النحل", true, 268],
-        [2029, 111, 50, 12, "الإسراء", true, 282],
-        [2140, 110, 69, 12, "الكهف", true, 294],
-        [2250, 98, 44, 6, "مريم", true, 305],
-        [2348, 135, 45, 8, "طه", true, 313],
-        [2483, 112, 73, 7, "الأنبياء", true, 322],
-        [2595, 78, 103, 10, "الحج", false, 332],
-        [2673, 118, 74, 6, "المؤمنون", true, 342],
-        [2791, 64, 102, 9, "النور", false, 350],
-        [2855, 77, 42, 6, "الفرقان", true, 360],
-        [2932, 227, 47, 11, "الشعراء", true, 367],
-        [3159, 93, 48, 7, "النمل", true, 377],
-        [3252, 88, 49, 8, "القصص", true, 386],
-        [3340, 69, 85, 7, "العنكبوت", true, 397],
-        [3409, 60, 84, 6, "الروم", true, 405],
-        [3469, 34, 57, 3, "لقمان", true, 411],
-        [3503, 30, 75, 3, "السجدة", true, 415],
-        [3533, 73, 90, 9, "الأحزاب", false, 418],
-        [3606, 54, 58, 6, "سبإ", true, 428],
-        [3660, 45, 43, 5, "فاطر", true, 435],
-        [3705, 83, 41, 5, "يس", true, 441],
-        [3788, 182, 56, 5, "الصافات", true, 446],
-        [3970, 88, 38, 5, "ص", true, 453],
-        [4058, 75, 59, 8, "الزمر", true, 459],
-        [4133, 85, 60, 9, "غافر", true, 468],
-        [4218, 54, 61, 6, "فصلت", true, 477],
-        [4272, 53, 62, 5, "الشورى", true, 483],
-        [4325, 89, 63, 7, "الزخرف", true, 490],
-        [4414, 59, 64, 3, "الدخان", true, 496],
-        [4473, 37, 65, 4, "الجاثية", true, 499],
-        [4510, 35, 66, 4, "الأحقاف", true, 503],
-        [4545, 38, 95, 4, "محمد", false, 507],
-        [4583, 29, 111, 4, "الفتح", false, 511],
-        [4612, 18, 106, 2, "الحجرات", false, 516],
-        [4630, 45, 34, 3, "ق", true, 518],
-        [4675, 60, 67, 3, "الذاريات", true, 521],
-        [4735, 49, 76, 2, "الطور", true, 524],
-        [4784, 62, 23, 3, "النجم", true, 526],
-        [4846, 55, 37, 3, "القمر", true, 529],
-        [4901, 78, 97, 3, "الرحمن", false, 532],
-        [4979, 96, 46, 3, "الواقعة", true, 535],
-        [5075, 29, 94, 4, "الحديد", false, 538],
-        [5104, 22, 105, 3, "المجادلة", false, 542],
-        [5126, 24, 101, 3, "الحشر", false, 546],
-        [5150, 13, 91, 2, "الممتحنة", false, 549],
-        [5163, 14, 109, 2, "الصف", false, 552],
-        [5177, 11, 110, 2, "الجمعة", false, 553],
-        [5188, 11, 104, 2, "المنافقون", false, 555],
-        [5199, 18, 108, 2, "التغابن", false, 556],
-        [5217, 12, 99, 2, "الطلاق", false, 558],
-        [5229, 12, 107, 2, "التحريم", false, 560],
-        [5241, 30, 77, 2, "الملك", true, 562],
-        [5271, 52, 2, 2, "القلم", true, 565],
-        [5323, 52, 78, 2, "الحاقة", true, 567],
-        [5375, 44, 79, 2, "المعارج", true, 569],
-        [5419, 28, 71, 2, "نوح", true, 571],
-        [5447, 28, 40, 2, "الجن", true, 572],
-        [5475, 20, 3, 2, "المزمل", true, 574],
-        [5495, 56, 4, 2, "المدثر", true, 576],
-        [5551, 40, 31, 2, "القيامة", true, 578],
-        [5591, 31, 98, 2, "الانسان", false, 579],
-        [5622, 50, 33, 2, "المرسلات", true, 581],
-        [5672, 40, 80, 2, "النبإ", true, 582],
-        [5712, 46, 81, 2, "النازعات", true, 584],
-        [5758, 42, 24, 1, "عبس", true, 585],
-        [5800, 29, 7, 1, "التكوير", true, 586],
-        [5829, 19, 82, 1, "الإنفطار", true, 587],
-        [5848, 36, 86, 1, "المطففين", true, 588],
-        [5884, 25, 83, 1, "الإنشقاق", true, 589],
-        [5909, 22, 27, 1, "البروج", true, 590],
-        [5931, 17, 36, 1, "الطارق", true, 591],
-        [5948, 19, 8, 1, "الأعلى", true, 592],
-        [5967, 26, 68, 1, "الغاشية", true, 592],
-        [5993, 30, 10, 1, "الفجر", true, 593],
-        [6023, 20, 35, 1, "البلد", true, 594],
-        [6043, 15, 26, 1, "الشمس", true, 595],
-        [6058, 21, 9, 1, "الليل", true, 596],
-        [6079, 11, 11, 1, "الضحى", true, 596],
-        [6090, 8, 12, 1, "الشرح", true, 596],
-        [6098, 8, 28, 1, "التين", true, 597],
-        [6106, 19, 1, 1, "العلق", true, 597],
-        [6125, 5, 25, 1, "القدر", true, 598],
-        [6130, 8, 100, 1, "البينة", false, 599],
-        [6138, 8, 93, 1, "الزلزلة", false, 599],
-        [6146, 11, 14, 1, "العاديات", true, 600],
-        [6157, 11, 30, 1, "القارعة", true, 600],
-        [6168, 8, 16, 1, "التكاثر", true, 600],
-        [6176, 3, 13, 1, "العصر", true, 601],
-        [6179, 9, 32, 1, "الهمزة", true, 601],
-        [6188, 5, 19, 1, "الفيل", true, 601],
-        [6193, 4, 29, 1, "قريش", true, 602],
-        [6197, 7, 17, 1, "الماعون", true, 602],
-        [6204, 3, 15, 1, "الكوثر", true, 602],
-        [6207, 6, 18, 1, "الكافرون", true, 603],
-        [6213, 3, 114, 1, "النصر", false, 603],
-        [6216, 5, 6, 1, "المسد", true, 603],
-        [6221, 4, 22, 1, "الإخلاص", true, 604],
-        [6225, 5, 20, 1, "الفلق", true, 604],
-        [6230, 6, 21, 1, "الناس", true, 604],
-        [6236, 0, -1, -1, "", false, -1],
-    ];
+  function getAyaCountinSura(surah) {
+    return getSurahMeta(surah)[1];
+  }
 
-    function getSurahMeta(surah) {
-        checkValidSurah(surah);
-        return SuraList[surah];
+  function checkValidSurah(surah, checkOnly = false) {
+    if (typeof surah !== "number" || !Number.isInteger(surah)) {
+      if (checkOnly) return false;
+      throw new TypeError("Ayah ID must be an integer");
     }
-
-    function checkValidSurahAyah(surah, ayah, checkOnly) {
-        if (checkOnly === void 0) { checkOnly = false; }
-        if (!checkValidSurah(surah, checkOnly))
-            return false;
-        var _a = getSurahMeta(surah); _a[0]; var ayahCount = _a[1];
-        if (ayah < 1 || ayah > ayahCount) {
-            if (checkOnly)
-                return false;
-            throw new RangeError("Ayah must be between 1 and " + ayahCount);
-        }
-        return true;
+    if (surah < 1 || surah > meta.numSuras) {
+      if (checkOnly) return false;
+      throw new RangeError("Surah must be between 1 and " + meta.numSuras);
     }
-
-    function ayaStringSplitter(str) {
-        var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
-        var surah = parseInt(surahStr, 10);
-        if (isNaN(surah)) {
-            throw "Error in surah format " + str;
-        }
-        if (!ayahsStr) {
-            throw "Error in data " + str;
-        }
-        var ayahs;
-        if (ayahsStr.includes("-")) {
-            ayahs = ayahsStr.split("-").map(function (a) {
-                var ayah = parseInt(a, 10);
-                if (isNaN(ayah) || ayah === 0) {
-                    throw "Error in ayah " + a;
-                }
-                return ayah;
-            });
-            if (ayahs[0] > ayahs[1])
-                throw "Error in ayah range " + str;
-        }
-        else {
-            ayahs = parseInt(ayahsStr, 10);
-            if (isNaN(ayahs) || ayahs === 0) {
-                throw "Error in data " + str;
-            }
-            checkValidSurahAyah(surah, ayahs);
-        }
-        return [surah, ayahs];
+    return true;
+  }
+  function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+    if (!checkValidSurah(surah, checkOnly)) return false;
+    if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+      if (checkOnly) return false;
+      throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
     }
-
-    function checkValidAyahId(ayaId) {
-        if (ayaId < 1 || ayaId > meta.numAyas)
-            throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-        return true;
+    return true;
+  }
+  function checkValidAyahId(ayahId, checkOnly = false) {
+    if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+      if (checkOnly) return false;
+      throw new TypeError("Ayah ID must be an integer");
     }
+    if (ayahId < 1 || ayahId > meta.numAyas) {
+      if (checkOnly) return false;
+      throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+    }
+    return true;
+  }
 
-    function findAyaidBySurah(surah, ayah) {
-        checkValidSurahAyah(surah, ayah);
-        var startAyahId = getSurahMeta(surah)[0];
-        return startAyahId + ayah;
+  function ayaStringSplitter(str) {
+    const [surahStr, ayahsStr] = str.trim().split(":");
+    const surah = parseInt(surahStr, 10);
+    if (isNaN(surah)) {
+      throw "Error in surah format " + str;
+    }
+    if (!ayahsStr) {
+      throw "Error in data " + str;
     }
+    let ayahs;
+    if (ayahsStr.includes("-")) {
+      ayahs = ayahsStr.split("-").map((a) => {
+        const ayah = parseInt(a, 10);
+        if (isNaN(ayah) || ayah === 0) {
+          throw "Error in ayah " + a;
+        }
+        return ayah;
+      });
+      if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+    } else {
+      ayahs = parseInt(ayahsStr, 10);
+      if (isNaN(ayahs) || ayahs === 0) {
+        throw "Error in data " + str;
+      }
+      checkValidSurahAyah(surah, ayahs);
+    }
+    return [surah, ayahs];
+  }
 
-    var 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,
-    ];
+  function findAyaidBySurah(surah, ayah) {
+    checkValidSurahAyah(surah, ayah);
+    const [startAyahId] = getSurahMeta(surah);
+    return startAyahId + ayah;
+  }
 
-    function findJuzByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        return JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-    }
+  const 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
+  ];
 
-    function findJuz(surah, ayah, ayahMode) {
-        if (ayah === void 0) { ayah = 1; }
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
-        return findJuzByAyaid(ayahId);
-    }
+  function findJuzByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    return JuzList.findIndex((x) => x > ayaId) - 1;
+  }
 
-    function findSurahByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        var suraNum = SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-        return [suraNum, ayaId - SuraList[suraNum][0]];
-    }
+  function findJuz(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+    return findJuzByAyaid(ayahId);
+  }
 
-    function findJuzAndShift(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        var juz = findJuzByAyaid(ayahId);
-        var leftAyahId = JuzList[juz];
-        if (ayahMode)
-            surah = findSurahByAyaid(ayahId)[0];
-        var surahStartAyahId = SuraList[surah][0];
-        return {
-            juz: juz,
-            ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-            leftAyahId: leftAyahId
-        };
-    }
+  function findSurahByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+    return [suraNum, ayaId - SuraList[suraNum][0]];
+  }
 
-    var 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,
-    ];
+  function findJuzAndShift(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    const juz = findJuzByAyaid(ayahId);
+    const leftAyahId = JuzList[juz];
+    if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+    const [surahStartAyahId] = SuraList[surah];
+    return {
+      juz,
+      ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+      leftAyahId
+    };
+  }
 
-    function findJuzHizbByAyaid(ayaId) {
-        checkValidAyahId(ayaId);
-        var juz = findJuzByAyaid(ayaId);
-        var id = HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-        return { juz: juz, hizb: id % 8 || 8, id: id };
-    }
+  const 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
+  ];
 
-    function findJuzHizb(surah, ayah, ayahMode) {
-        if (ayah === void 0) { ayah = 1; }
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return findJuzHizbByAyaid(ayahId);
-    }
+  function findJuzHizbByAyaid(ayaId) {
+    checkValidAyahId(ayaId);
+    const juz = findJuzByAyaid(ayaId);
+    const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+    const hizb = quarterIndex % 8 || 8;
+    return { juz, hizb, id: quarterIndex };
+  }
+
+  function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+    const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return findJuzHizbByAyaid(ayahId);
+  }
 
-    function findJuzMetaBySurah(surah, ayah) {
-        if (ayah === void 0) { ayah = 1; }
-        var _a = findJuzAndShift(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-        var rightJuz = leftjuz;
-        while (rightJuz < meta.numJuzs &&
-            findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-            rightJuz++;
-        return {
-            leftjuz: leftjuz,
-            ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-            rightJuz: rightJuz,
-            leftAyahId: leftAyahId,
-            rightAyahId: JuzList[rightJuz + 1],
-        };
+  function findJuzMetaBySurah(surah, ayah = 1) {
+    const {
+      juz: leftjuz,
+      ayahsBetweenJuzSurah,
+      leftAyahId
+    } = findJuzAndShift(surah, ayah);
+    let rightJuz = leftjuz;
+    while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+      rightJuz++;
     }
+    return {
+      leftjuz,
+      ayahsBetweenJuzSurah,
+      rightJuz,
+      leftAyahId,
+      rightAyahId: JuzList[rightJuz + 1]
+    };
+  }
 
-    var 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,
-    ];
+  const 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
+  ];
 
-    function findPage(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-    }
+  function findPage(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return PageList.findIndex((x) => x > ayahId) - 1;
+  }
 
-    function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? ayah
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        switch (mode) {
-            case "juz": {
-                var juz = findJuzByAyaid(ayahId);
-                return [JuzList[juz], JuzList[juz + 1] - 1];
-            }
-            case "surah": {
-                return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
-            }
-            case "ayah": {
-                return [ayahId, ayahId];
-            }
-            case "page": {
-                var page = findPage(-1, ayahId, true);
-                return [PageList[page], PageList[page + 1] - 1];
-            }
-            case "all":
-            default:
-                return [1, meta.numAyas];
-        }
+  function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+    const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    switch (mode) {
+      case "juz": {
+        const juz = findJuzByAyaid(ayahId);
+        return [JuzList[juz], JuzList[juz + 1] - 1];
+      }
+      case "surah": {
+        return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+      }
+      case "ayah": {
+        return [ayahId, ayahId];
+      }
+      case "page": {
+        const page = findPage(-1, ayahId, true);
+        return [PageList[page], PageList[page + 1] - 1];
+      }
+      case "all":
+      default:
+        return [1, meta.numAyas];
     }
+  }
 
-    function getAyaCountinSura(surah) {
-        return getSurahMeta(surah)[1];
+  function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+    let m = 0;
+    let n = ar.length - 1;
+    while (m <= n) {
+      const k = n + m >> 1;
+      const cmp = compare_fn(el, ar[k]);
+      if (cmp > 0) {
+        m = k + 1;
+      } else if (cmp < 0) {
+        n = k - 1;
+      } else {
+        return k;
+      }
     }
+    return -m - 1;
+  }
 
-    function binarySearch(ar, el, compare_fn) {
-        if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-        var m = 0;
-        var n = ar.length - 1;
-        while (m <= n) {
-            var k = (n + m) >> 1;
-            var cmp = compare_fn(el, ar[k]);
-            if (cmp > 0) {
-                m = k + 1;
-            }
-            else if (cmp < 0) {
-                n = k - 1;
-            }
-            else {
-                return k;
-            }
-        }
-        return -m - 1;
-    }
+  function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return binarySearch(JuzList, ayahId);
+  }
 
-    function isAyahJuzFirst(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return binarySearch(JuzList, ayahId);
-    }
+  function isAyahPageFirst(surah, ayah, ayahMode = false) {
+    const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+    return binarySearch(PageList, ayahId);
+  }
 
-    function isAyahPageFirst(surah, ayah, ayahMode) {
-        if (ayahMode === void 0) { ayahMode = false; }
-        var ayahId = ayahMode
-            ? (checkValidAyahId(ayah) && ayah)
-            : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-        return binarySearch(PageList, ayahId);
-    }
+  const ManzilList = [
+    0,
+    1,
+    670,
+    1365,
+    2030,
+    2933,
+    3789,
+    4631,
+    6237
+  ];
 
-    var ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-
-    var SajdaList = [
-        [1160, "recommended"],
-        [1722, "recommended"],
-        [1951, "recommended"],
-        [2138, "recommended"],
-        [2308, "recommended"],
-        [2613, "recommended"],
-        [2672, "recommended"],
-        [2915, "recommended"],
-        [3185, "recommended"],
-        [3518, "obligatory"],
-        [3994, "recommended"],
-        [4256, "obligatory"],
-        [4846, "obligatory"],
-        [5905, "recommended"],
-        [6125, "obligatory"],
-    ];
+  const 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
+  ];
 
-    function nextAyah(surah, ayah) {
-        if (surah < 1 || surah > meta.numSuras)
-            throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-        var ayaid = findAyaidBySurah(surah, ayah);
-        return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-    }
+  const SajdaList = [
+    // [ayaId, type]
+    [1160, "recommended"],
+    [1722, "recommended"],
+    [1951, "recommended"],
+    [2138, "recommended"],
+    [2308, "recommended"],
+    [2613, "recommended"],
+    [2672, "recommended"],
+    [2915, "recommended"],
+    [3185, "recommended"],
+    [3518, "obligatory"],
+    [3994, "recommended"],
+    [4256, "obligatory"],
+    [4846, "obligatory"],
+    [5905, "recommended"],
+    [6125, "obligatory"]
+  ];
 
-    /******************************************************************************
-    Copyright (c) Microsoft Corporation.
-
-    Permission to use, copy, modify, and/or distribute this software for any
-    purpose with or without fee is hereby granted.
-
-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-    PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */
-    /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
-
-
-    function __spreadArray(to, from, pack) {
-        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-            if (ar || !(i in from)) {
-                if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-                ar[i] = from[i];
-            }
-        }
-        return to.concat(ar || Array.prototype.slice.call(from));
-    }
+  function nextAyah(surah, ayah) {
+    if (surah < 1 || surah > meta.numSuras)
+      throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+    const ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+  }
 
-    typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
-        var e = new Error(message);
-        return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
+  function pageMeta(pageNum) {
+    if (pageNum < 1 || pageNum > meta.numPages)
+      throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+    const [curPage, nextPage] = [
+      PageList[pageNum],
+      PageList[pageNum + 1]
+    ];
+    return {
+      pageNum,
+      first: findSurahByAyaid(curPage),
+      last: [...findSurahByAyaid(nextPage - 1)]
     };
+  }
 
-    function pageMeta(pageNum) {
-        if (pageNum < 1 || pageNum > meta.numPages)
-            throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-        var _a = [
-            PageList[pageNum],
-            PageList[pageNum + 1],
-        ], curPage = _a[0], nextPage = _a[1];
-        return {
-            pageNum: pageNum,
-            first: findSurahByAyaid(curPage),
-            last: __spreadArray([], findSurahByAyaid(nextPage - 1), true),
-        };
-    }
+  function prevAyah(surah, ayah) {
+    checkValidSurah(surah);
+    const ayaid = findAyaidBySurah(surah, ayah);
+    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+  }
 
-    function prevAyah(surah, ayah) {
-        checkValidSurah(surah);
-        var ayaid = findAyaidBySurah(surah, ayah);
-        return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-    }
+  const suraNames$1 = [
+    [],
+    ["Al-Faatiha", "The Opening"],
+    ["Al-Baqara", "The Cow"],
+    ["Aal-i-Imraan", "The Family of Imraan"],
+    ["An-Nisaa", "The Women"],
+    ["Al-Maaida", "The Table"],
+    ["Al-An'aam", "The Cattle"],
+    ["Al-A'raaf", "The Heights"],
+    ["Al-Anfaal", "The Spoils of War"],
+    ["At-Tawba", "The Repentance"],
+    ["Yunus", "Jonas"],
+    ["Hud", "Hud"],
+    ["Yusuf", "Joseph"],
+    ["Ar-Ra'd", "The Thunder"],
+    ["Ibrahim", "Abraham"],
+    ["Al-Hijr", "The Rock"],
+    ["An-Nahl", "The Bee"],
+    ["Al-Israa", "The Night Journey"],
+    ["Al-Kahf", "The Cave"],
+    ["Maryam", "Mary"],
+    ["Taa-Haa", "Taa-Haa"],
+    ["Al-Anbiyaa", "The Prophets"],
+    ["Al-Hajj", "The Pilgrimage"],
+    ["Al-Muminoon", "The Believers"],
+    ["An-Noor", "The Light"],
+    ["Al-Furqaan", "The Criterion"],
+    ["Ash-Shu'araa", "The Poets"],
+    ["An-Naml", "The Ant"],
+    ["Al-Qasas", "The Stories"],
+    ["Al-Ankaboot", "The Spider"],
+    ["Ar-Room", "The Romans"],
+    ["Luqman", "Luqman"],
+    ["As-Sajda", "The Prostration"],
+    ["Al-Ahzaab", "The Clans"],
+    ["Saba", "Sheba"],
+    ["Faatir", "The Originator"],
+    ["Yaseen", "Yaseen"],
+    ["As-Saaffaat", "Those drawn up in Ranks"],
+    ["Saad", "The letter Saad"],
+    ["Az-Zumar", "The Groups"],
+    ["Al-Ghaafir", "The Forgiver"],
+    ["Fussilat", "Explained in detail"],
+    ["Ash-Shura", "Consultation"],
+    ["Az-Zukhruf", "Ornaments of gold"],
+    ["Ad-Dukhaan", "The Smoke"],
+    ["Al-Jaathiya", "Crouching"],
+    ["Al-Ahqaf", "The Dunes"],
+    ["Muhammad", "Muhammad"],
+    ["Al-Fath", "The Victory"],
+    ["Al-Hujuraat", "The Inner Apartments"],
+    ["Qaaf", "The letter Qaaf"],
+    ["Adh-Dhaariyat", "The Winnowing Winds"],
+    ["At-Tur", "The Mount"],
+    ["An-Najm", "The Star"],
+    ["Al-Qamar", "The Moon"],
+    ["Ar-Rahmaan", "The Beneficent"],
+    ["Al-Waaqia", "The Inevitable"],
+    ["Al-Hadid", "The Iron"],
+    ["Al-Mujaadila", "The Pleading Woman"],
+    ["Al-Hashr", "The Exile"],
+    ["Al-Mumtahana", "She that is to be examined"],
+    ["As-Saff", "The Ranks"],
+    ["Al-Jumu'a", "Friday"],
+    ["Al-Munaafiqoon", "The Hypocrites"],
+    ["At-Taghaabun", "Mutual Disillusion"],
+    ["At-Talaaq", "Divorce"],
+    ["At-Tahrim", "The Prohibition"],
+    ["Al-Mulk", "The Sovereignty"],
+    ["Al-Qalam", "The Pen"],
+    ["Al-Haaqqa", "The Reality"],
+    ["Al-Ma'aarij", "The Ascending Stairways"],
+    ["Nooh", "Noah"],
+    ["Al-Jinn", "The Jinn"],
+    ["Al-Muzzammil", "The Enshrouded One"],
+    ["Al-Muddaththir", "The Cloaked One"],
+    ["Al-Qiyaama", "The Resurrection"],
+    ["Al-Insaan", "Man"],
+    ["Al-Mursalaat", "The Emissaries"],
+    ["An-Naba", "The Announcement"],
+    ["An-Naazi'aat", "Those who drag forth"],
+    ["Abasa", "He frowned"],
+    ["At-Takwir", "The Overthrowing"],
+    ["Al-Infitaar", "The Cleaving"],
+    ["Al-Mutaffifin", "Defrauding"],
+    ["Al-Inshiqaaq", "The Splitting Open"],
+    ["Al-Burooj", "The Constellations"],
+    ["At-Taariq", "The Morning Star"],
+    ["Al-A'laa", "The Most High"],
+    ["Al-Ghaashiya", "The Overwhelming"],
+    ["Al-Fajr", "The Dawn"],
+    ["Al-Balad", "The City"],
+    ["Ash-Shams", "The Sun"],
+    ["Al-Lail", "The Night"],
+    ["Ad-Dhuhaa", "The Morning Hours"],
+    ["Ash-Sharh", "The Consolation"],
+    ["At-Tin", "The Fig"],
+    ["Al-Alaq", "The Clot"],
+    ["Al-Qadr", "The Power, Fate"],
+    ["Al-Bayyina", "The Evidence"],
+    ["Az-Zalzala", "The Earthquake"],
+    ["Al-Aadiyaat", "The Chargers"],
+    ["Al-Qaari'a", "The Calamity"],
+    ["At-Takaathur", "Competition"],
+    ["Al-Asr", "The Declining Day, Epoch"],
+    ["Al-Humaza", "The Traducer"],
+    ["Al-Fil", "The Elephant"],
+    ["Quraish", "Quraysh"],
+    ["Al-Maa'un", "Almsgiving"],
+    ["Al-Kawthar", "Abundance"],
+    ["Al-Kaafiroon", "The Disbelievers"],
+    ["An-Nasr", "Divine Support"],
+    ["Al-Masad", "The Palm Fibre"],
+    ["Al-Ikhlaas", "Sincerity"],
+    ["Al-Falaq", "The Dawn"],
+    ["An-Naas", "Mankind"]
+  ];
+
+  const suraNames = [
+    [],
+    ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+    ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+    ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+    ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+    ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+    ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+    ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+    ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+    ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+    ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+    ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+    ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+    ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+    ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+    ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+    ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+    ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+    ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+    ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+    ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+    ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+    ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+    ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+    ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+    ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+    ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+    ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+    ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+    ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+    ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+    ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+    ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+    ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+    ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+    ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+    ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+    ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+    ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+    ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+    ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+    ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+    ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+    ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+    ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+    ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+    ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+    ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+    ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+    ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+    ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+    ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+    ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+    ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+    ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+    ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+    ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+    ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+    ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+    ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+    ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+    ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+    ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+    ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+    ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+    ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+    ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+    ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+    ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+    ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+    ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+    ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+    ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+    ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+    ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+    ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+    ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+    ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+    ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+    ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+    ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+    ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+    ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+    ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+    ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+    ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+    ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+  ];
 
-    exports.HizbQuarterList = HizbQuarterList;
-    exports.JuzList = JuzList;
-    exports.ManzilList = ManzilList;
-    exports.PageList = PageList;
-    exports.RukuList = RukuList;
-    exports.SajdaList = SajdaList;
-    exports.SuraList = SuraList;
-    exports.ayaStringSplitter = ayaStringSplitter;
-    exports.checkValidAyahId = checkValidAyahId;
-    exports.checkValidSurah = checkValidSurah;
-    exports.checkValidSurahAyah = checkValidSurahAyah;
-    exports.findAyaidBySurah = findAyaidBySurah;
-    exports.findJuz = findJuz;
-    exports.findJuzAndShift = findJuzAndShift;
-    exports.findJuzByAyaid = findJuzByAyaid;
-    exports.findJuzHizb = findJuzHizb;
-    exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
-    exports.findJuzMetaBySurah = findJuzMetaBySurah;
-    exports.findPage = findPage;
-    exports.findRangeAroundAyah = findRangeAroundAyah;
-    exports.findSurahByAyaid = findSurahByAyaid;
-    exports.getAyaCountinSura = getAyaCountinSura;
-    exports.getSurahMeta = getSurahMeta;
-    exports.isAyahJuzFirst = isAyahJuzFirst;
-    exports.isAyahPageFirst = isAyahPageFirst;
-    exports.meta = meta;
-    exports.nextAyah = nextAyah;
-    exports.pageMeta = pageMeta;
-    exports.prevAyah = prevAyah;
-    exports.suraNamesEn = suraNames$1;
-    exports.suraNamesRu = suraNames;
+  exports.HizbQuarterList = HizbQuarterList;
+  exports.JuzList = JuzList;
+  exports.ManzilList = ManzilList;
+  exports.PageList = PageList;
+  exports.RukuList = RukuList;
+  exports.SajdaList = SajdaList;
+  exports.SuraList = SuraList;
+  exports.ayaStringSplitter = ayaStringSplitter;
+  exports.checkValidAyahId = checkValidAyahId;
+  exports.checkValidSurah = checkValidSurah;
+  exports.checkValidSurahAyah = checkValidSurahAyah;
+  exports.findAyaidBySurah = findAyaidBySurah;
+  exports.findJuz = findJuz;
+  exports.findJuzAndShift = findJuzAndShift;
+  exports.findJuzByAyaid = findJuzByAyaid;
+  exports.findJuzHizb = findJuzHizb;
+  exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
+  exports.findJuzMetaBySurah = findJuzMetaBySurah;
+  exports.findPage = findPage;
+  exports.findRangeAroundAyah = findRangeAroundAyah;
+  exports.findSurahByAyaid = findSurahByAyaid;
+  exports.getAyaCountinSura = getAyaCountinSura;
+  exports.getSurahMeta = getSurahMeta;
+  exports.isAyahJuzFirst = isAyahJuzFirst;
+  exports.isAyahPageFirst = isAyahPageFirst;
+  exports.meta = meta;
+  exports.nextAyah = nextAyah;
+  exports.pageMeta = pageMeta;
+  exports.prevAyah = prevAyah;
+  exports.suraNamesEn = suraNames$1;
+  exports.suraNamesRu = suraNames;
 
 }));
 //# sourceMappingURL=quran-meta.js.map
diff --git a/dist/quran-meta.js.map b/dist/quran-meta.js.map
index e8669eb..3cbde0a 100644
--- a/dist/quran-meta.js.map
+++ b/dist/quran-meta.js.map
@@ -1 +1 @@
-{"version":3,"file":"quran-meta.js","sources":["../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts","../src/lists/rukuList.ts","../src/const.ts","../src/checkValidSurah.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/checkValidSurahAyah.ts","../src/ayaStringSplitter.ts","../src/checkValidAyahId.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/getAyaCountinSura.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../node_modules/.pnpm/@rollup+plugin-typescript@12.1.0_rollup@4.24.0_tslib@2.7.0_typescript@5.6.2/node_modules/tslib/tslib.es6.js","../src/pageMeta.ts","../src/prevAyah.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n",null,null],"names":["suraNames"],"mappings":";;;;;;;;;;;;AACa,QAAAA,WAAS,GAAsB;QAC1C,EAAE;QACF,CAAC,YAAY,EAAE,aAAa,CAAC;QAC7B,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,cAAc,EAAE,sBAAsB,CAAC;QACxC,CAAC,UAAU,EAAE,WAAW,CAAC;QACzB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3B,CAAC,WAAW,EAAE,aAAa,CAAC;QAC5B,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAClC,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAC9B,CAAC,OAAO,EAAE,OAAO,CAAC;QAClB,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,OAAO,EAAE,QAAQ,CAAC;QACnB,CAAC,SAAS,EAAE,aAAa,CAAC;QAC1B,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,SAAS,EAAE,UAAU,CAAC;QACvB,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,UAAU,EAAE,mBAAmB,CAAC;QACjC,CAAC,SAAS,EAAE,UAAU,CAAC;QACvB,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClB,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,YAAY,EAAE,cAAc,CAAC;QAC9B,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAC7B,CAAC,aAAa,EAAE,eAAe,CAAC;QAChC,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,YAAY,EAAE,eAAe,CAAC;QAC/B,CAAC,cAAc,EAAE,WAAW,CAAC;QAC7B,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,UAAU,EAAE,aAAa,CAAC;QAC3B,CAAC,aAAa,EAAE,YAAY,CAAC;QAC7B,CAAC,SAAS,EAAE,YAAY,CAAC;QACzB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpB,CAAC,UAAU,EAAE,iBAAiB,CAAC;QAC/B,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,MAAM,EAAE,OAAO,CAAC;QACjB,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QAC5B,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpB,CAAC,aAAa,EAAE,yBAAyB,CAAC;QAC1C,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAC3B,CAAC,UAAU,EAAE,YAAY,CAAC;QAC1B,CAAC,YAAY,EAAE,cAAc,CAAC;QAC9B,CAAC,UAAU,EAAE,qBAAqB,CAAC;QACnC,CAAC,WAAW,EAAE,cAAc,CAAC;QAC7B,CAAC,YAAY,EAAE,mBAAmB,CAAC;QACnC,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,aAAa,EAAE,WAAW,CAAC;QAC5B,CAAC,UAAU,EAAE,WAAW,CAAC;QACzB,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,SAAS,EAAE,aAAa,CAAC;QAC1B,CAAC,aAAa,EAAE,sBAAsB,CAAC;QACvC,CAAC,MAAM,EAAE,iBAAiB,CAAC;QAC3B,CAAC,eAAe,EAAE,qBAAqB,CAAC;QACxC,CAAC,QAAQ,EAAE,WAAW,CAAC;QACvB,CAAC,SAAS,EAAE,UAAU,CAAC;QACvB,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,YAAY,EAAE,gBAAgB,CAAC;QAChC,CAAC,WAAW,EAAE,gBAAgB,CAAC;QAC/B,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,cAAc,EAAE,oBAAoB,CAAC;QACtC,CAAC,UAAU,EAAE,WAAW,CAAC;QACzB,CAAC,cAAc,EAAE,4BAA4B,CAAC;QAC9C,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,WAAW,EAAE,QAAQ,CAAC;QACvB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;QACpC,CAAC,cAAc,EAAE,oBAAoB,CAAC;QACtC,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAChC,CAAC,SAAS,EAAE,iBAAiB,CAAC;QAC9B,CAAC,UAAU,EAAE,SAAS,CAAC;QACvB,CAAC,WAAW,EAAE,aAAa,CAAC;QAC5B,CAAC,aAAa,EAAE,yBAAyB,CAAC;QAC1C,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,SAAS,EAAE,UAAU,CAAC;QACvB,CAAC,cAAc,EAAE,oBAAoB,CAAC;QACtC,CAAC,gBAAgB,EAAE,iBAAiB,CAAC;QACrC,CAAC,YAAY,EAAE,kBAAkB,CAAC;QAClC,CAAC,WAAW,EAAE,KAAK,CAAC;QACpB,CAAC,cAAc,EAAE,gBAAgB,CAAC;QAClC,CAAC,SAAS,EAAE,kBAAkB,CAAC;QAC/B,CAAC,cAAc,EAAE,sBAAsB,CAAC;QACxC,CAAC,OAAO,EAAE,YAAY,CAAC;QACvB,CAAC,WAAW,EAAE,kBAAkB,CAAC;QACjC,CAAC,aAAa,EAAE,cAAc,CAAC;QAC/B,CAAC,eAAe,EAAE,YAAY,CAAC;QAC/B,CAAC,cAAc,EAAE,oBAAoB,CAAC;QACtC,CAAC,WAAW,EAAE,oBAAoB,CAAC;QACnC,CAAC,WAAW,EAAE,kBAAkB,CAAC;QACjC,CAAC,UAAU,EAAE,eAAe,CAAC;QAC7B,CAAC,cAAc,EAAE,kBAAkB,CAAC;QACpC,CAAC,SAAS,EAAE,UAAU,CAAC;QACvB,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAClC,CAAC,WAAW,EAAE,iBAAiB,CAAC;QAChC,CAAC,QAAQ,EAAE,SAAS,CAAC;QACrB,CAAC,SAAS,EAAE,UAAU,CAAC;QACvB,CAAC,SAAS,EAAE,iBAAiB,CAAC;QAC9B,CAAC,YAAY,EAAE,cAAc,CAAC;QAC9B,CAAC,YAAY,EAAE,gBAAgB,CAAC;QAChC,CAAC,aAAa,EAAE,cAAc,CAAC;QAC/B,CAAC,YAAY,EAAE,cAAc,CAAC;QAC9B,CAAC,cAAc,EAAE,aAAa,CAAC;QAC/B,CAAC,QAAQ,EAAE,0BAA0B,CAAC;QACtC,CAAC,WAAW,EAAE,cAAc,CAAC;QAC7B,CAAC,QAAQ,EAAE,cAAc,CAAC;QAC1B,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,cAAc,EAAE,kBAAkB,CAAC;QACpC,CAAC,SAAS,EAAE,gBAAgB,CAAC;QAC7B,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAC9B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,SAAS,EAAE,SAAS,CAAC;;;ACnHX,QAAA,SAAS,GAAsB;QAC1C,EAAE;QACF,CAAC,YAAY,EAAE,mBAAmB,CAAC;QACnC,CAAC,YAAY,EAAE,QAAQ,CAAC;QACxB,CAAC,YAAY,EAAE,mBAAmB,CAAC;QACnC,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,WAAW,EAAE,QAAQ,CAAC;QACvB,CAAC,YAAY,EAAE,gBAAgB,CAAC;QAChC,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,MAAM,EAAE,MAAM,CAAC;QAChB,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,MAAM,EAAE,OAAO,CAAC;QACjB,CAAC,SAAS,EAAE,MAAM,CAAC;QACnB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACrB,CAAC,WAAW,EAAE,OAAO,CAAC;QACtB,CAAC,UAAU,EAAE,OAAO,CAAC;QACrB,CAAC,UAAU,EAAE,gBAAgB,CAAC;QAC9B,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpB,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,cAAc,EAAE,UAAU,CAAC;QAC5B,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClB,CAAC,YAAY,EAAE,YAAY,CAAC;QAC5B,CAAC,WAAW,EAAE,OAAO,CAAC;QACtB,CAAC,UAAU,EAAE,SAAS,CAAC;QACvB,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,cAAc,EAAE,MAAM,CAAC;QACxB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnB,CAAC,QAAQ,EAAE,QAAQ,CAAC;QACpB,CAAC,WAAW,EAAE,eAAe,CAAC;QAC9B,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,OAAO,EAAE,MAAM,CAAC;QACjB,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,WAAW,EAAE,eAAe,CAAC;QAC9B,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,UAAU,EAAE,OAAO,CAAC;QACrB,CAAC,OAAO,EAAE,WAAW,CAAC;QACtB,CAAC,UAAU,EAAE,YAAY,CAAC;QAC1B,CAAC,SAAS,EAAE,OAAO,CAAC;QACpB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC1B,CAAC,UAAU,EAAE,KAAK,CAAC;QACnB,CAAC,YAAY,EAAE,oBAAoB,CAAC;QACpC,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,UAAU,EAAE,UAAU,CAAC;QACxB,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtB,CAAC,cAAc,EAAE,OAAO,CAAC;QACzB,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,WAAW,EAAE,cAAc,CAAC;QAC7B,CAAC,QAAQ,EAAE,MAAM,CAAC;QAClB,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtB,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3B,CAAC,YAAY,EAAE,YAAY,CAAC;QAC5B,CAAC,WAAW,EAAE,QAAQ,CAAC;QACvB,CAAC,eAAe,EAAE,eAAe,CAAC;QAClC,CAAC,UAAU,EAAE,MAAM,CAAC;QACpB,CAAC,eAAe,EAAE,YAAY,CAAC;QAC/B,CAAC,SAAS,EAAE,KAAK,CAAC;QAClB,CAAC,aAAa,EAAE,UAAU,CAAC;QAC3B,CAAC,eAAe,EAAE,UAAU,CAAC;QAC7B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,UAAU,EAAE,QAAQ,CAAC;QACtB,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3B,CAAC,WAAW,EAAE,QAAQ,CAAC;QACvB,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,WAAW,EAAE,YAAY,CAAC;QAC3B,CAAC,cAAc,EAAE,SAAS,CAAC;QAC3B,CAAC,KAAK,EAAE,KAAK,CAAC;QACd,CAAC,WAAW,EAAE,QAAQ,CAAC;QACvB,CAAC,gBAAgB,EAAE,cAAc,CAAC;QAClC,CAAC,eAAe,EAAE,eAAe,CAAC;QAClC,CAAC,WAAW,EAAE,aAAa,CAAC;QAC5B,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,cAAc,EAAE,YAAY,CAAC;QAC9B,CAAC,UAAU,EAAE,OAAO,CAAC;QACrB,CAAC,YAAY,EAAE,YAAY,CAAC;QAC5B,CAAC,QAAQ,EAAE,YAAY,CAAC;QACxB,CAAC,WAAW,EAAE,cAAc,CAAC;QAC7B,CAAC,aAAa,EAAE,cAAc,CAAC;QAC/B,CAAC,gBAAgB,EAAE,cAAc,CAAC;QAClC,CAAC,aAAa,EAAE,cAAc,CAAC;QAC/B,CAAC,YAAY,EAAE,WAAW,CAAC;QAC3B,CAAC,UAAU,EAAE,cAAc,CAAC;QAC5B,CAAC,UAAU,EAAE,WAAW,CAAC;QACzB,CAAC,WAAW,EAAE,aAAa,CAAC;QAC5B,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,WAAW,EAAE,OAAO,CAAC;QACtB,CAAC,SAAS,EAAE,QAAQ,CAAC;QACrB,CAAC,WAAW,EAAE,MAAM,CAAC;QACrB,CAAC,SAAS,EAAE,MAAM,CAAC;QACnB,CAAC,aAAa,EAAE,WAAW,CAAC;QAC5B,CAAC,QAAQ,EAAE,YAAY,CAAC;QACxB,CAAC,WAAW,EAAE,eAAe,CAAC;QAC9B,CAAC,UAAU,EAAE,SAAS,CAAC;QACvB,CAAC,aAAa,EAAE,aAAa,CAAC;QAC9B,CAAC,aAAa,EAAE,YAAY,CAAC;QAC7B,CAAC,YAAY,EAAE,UAAU,CAAC;QAC1B,CAAC,YAAY,EAAE,YAAY,CAAC;QAC5B,CAAC,YAAY,EAAE,eAAe,CAAC;QAC/B,CAAC,UAAU,EAAE,oBAAoB,CAAC;QAClC,CAAC,YAAY,EAAE,UAAU,CAAC;QAC1B,CAAC,UAAU,EAAE,MAAM,CAAC;QACpB,CAAC,QAAQ,EAAE,WAAW,CAAC;QACvB,CAAC,WAAW,EAAE,QAAQ,CAAC;QACvB,CAAC,YAAY,EAAE,QAAQ,CAAC;QACxB,CAAC,aAAa,EAAE,YAAY,CAAC;QAC7B,CAAC,SAAS,EAAE,QAAQ,CAAC;QACrB,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAClC,CAAC,WAAW,EAAE,eAAe,CAAC;QAC9B,CAAC,WAAW,EAAE,SAAS,CAAC;QACxB,CAAC,QAAQ,EAAE,MAAM,CAAC;;;AClHP,QAAA,QAAQ,GAAa;IAChC,IAAA,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,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AG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAA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E,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;QACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;QAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAA,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;;aChC5C,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB,EAAA;IAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;QACnE,IAAM,MAAM,GAAW,QAAQ;eACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;IAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,IAAA,OAAO,QAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,EAAI,EAAA,OAAA,CAAC,GAAG,MAAM,CAAV,EAAU,CAAC,GAAG,CAAC,CAAC;IACjD;;ICqBM,SAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB,EAAA;IAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;QAEhB,IAAM,MAAM,GAAW,QAAQ;IAC7B,UAAE,IAAI;IACN,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;QAE1E,QAAQ,IAAI;YACV,KAAK,KAAK,EAAE;IACV,YAAA,IAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAC;IACxC,YAAA,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7C;YAED,KAAK,OAAO,EAAE;gBACZ,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACrD;YAED,KAAK,MAAM,EAAE;IACX,YAAA,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aACzB;YACD,KAAK,MAAM,EAAE;gBACX,IAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC9C,YAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACjD;IAED,QAAA,KAAK,KAAK,CAAC;IACX,QAAA;IACE,YAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC5B;IACH;;IClEM,SAAU,iBAAiB,CAAC,KAAY,EAAA;IAC5C,IAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC;;aCFgB,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,UAA8D,EAAA;QAA9D,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAgD,GAAA,UAAA,CAAC,EAAE,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,CAAC,CAAA,EAAA,CAAA,EAAA;QAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAA,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,IAAA,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,QAAA,IAAI,GAAG,GAAG,CAAC,EAAE;IACX,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACV;IAAM,aAAA,IAAI,GAAG,GAAG,CAAC,EAAE;IAClB,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;aACV;iBAAM;IACL,YAAA,OAAO,CAAC,CAAA;aACT;SACF;IACD,IAAA,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;IACf;;aCXc,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;IAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;QAEhB,IAAM,MAAM,GAAW,QAAQ;eACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;IAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,IAAA,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEvC;;aCXgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB,EAAA;IAAhB,IAAA,IAAA,QAAA,KAAA,KAAA,CAAA,EAAA,EAAA,QAAgB,GAAA,KAAA,CAAA,EAAA;QAEhB,IAAM,MAAM,GAAW,QAAQ;eACzB,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI;IAClC,WAAI,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,IAAA,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAExC;;QCxBa,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;;ACSrE,QAAA,SAAS,GAAY;QAEhC,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,YAAY,CAAC;QACpB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,YAAY,CAAC;QACpB,CAAC,IAAI,EAAE,YAAY,CAAC;QACpB,CAAC,IAAI,EAAE,aAAa,CAAC;QACrB,CAAC,IAAI,EAAE,YAAY,CAAC;;;ICjBN,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;QACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;YACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvE,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE;;ICjBA;IACA;AACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACA;AAqMA;IACO,SAAS,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9C,IAAI,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACzF,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;IAChC,YAAY,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,YAAY,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,SAAS;IACT,KAAK;IACL,IAAI,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;AAiGD;IACuB,OAAO,eAAe,KAAK,UAAU,GAAG,eAAe,GAAG,UAAU,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IACvH,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,OAAO,CAAC,CAAC,IAAI,GAAG,iBAAiB,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,UAAU,EAAE,CAAC,CAAC;IACrF;;ICrTM,SAAU,QAAQ,CAAC,OAAa,EAAA;QAEpC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;YACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnE,IAAA,IAAA,EAAwC,GAAA;YAC5C,QAAQ,CAAC,OAAO,CAAC;IACjB,QAAA,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IACtB,KAAA,EAHM,OAAO,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,QAAQ,QAGvB,CAAC;QAEF,OAAO;IACL,QAAA,OAAO,EAAA,OAAA;IACP,QAAA,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAChC,QAAA,IAAI,oBAAM,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAC,IAAA,CAAA;SAC1C,CAAC;IACJ;;IChBgB,SAAA,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAA;QACjD,eAAe,CAAC,KAAK,CAAC,CAAC;QAEvB,IAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,IAAA,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;IACjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[30]}
\ No newline at end of file
+{"version":3,"file":"quran-meta.js","sources":["../src/const.ts","../src/lists/surahList.ts","../src/getSurahMeta.ts","../src/getAyaCountinSura.ts","../src/validation.ts","../src/ayaStringSplitter.ts","../src/findAyaidBySurah.ts","../src/lists/juzList.ts","../src/findJuzByAyaid.ts","../src/findJuz.ts","../src/findSurahByAyaid.ts","../src/findJuzAndShift.ts","../src/lists/hizbList.ts","../src/findJuzHizbByAyaid.ts","../src/findJuzHizb.ts","../src/findJuzMetaBySurah.ts","../src/lists/pageList.ts","../src/findPage.ts","../src/findRangeAroundAyah.ts","../src/utils.ts","../src/isAyahJuzFirst.ts","../src/isAyahPageFirst.ts","../src/lists/manzilList.ts","../src/lists/rukuList.ts","../src/lists/sajdaList.ts","../src/nextAyah.ts","../src/pageMeta.ts","../src/prevAyah.ts","../src/i18n/sura.en.ts","../src/i18n/sura.ru.ts"],"sourcesContent":["export type QuranMeta = {\n  numAyas: number\n  numSuras: number\n  numPages: number\n  numJuzs: number\n  manzilCount: number\n}\n\nexport const meta: Readonly<QuranMeta> = Object.freeze({\n  numAyas: 6236,\n  numSuras: 114,\n  numPages: 604,\n  numJuzs: 30,\n  manzilCount: 7\n})\n","import { SurahMeta } from \"../types\"\n\nexport const SuraList: SurahMeta[] = [\n  [-1, -1, -1, -1, \"\", false, -1],\n  [0, 7, 5, 1, \"الفاتحة\", true, 1],\n  [7, 286, 87, 40, \"البقرة\", false, 2],\n  [293, 200, 89, 20, \"آل عمران\", false, 50],\n  [493, 176, 92, 24, \"النساء\", false, 77],\n  [669, 120, 112, 16, \"المائدة\", false, 107],\n  [789, 165, 55, 20, \"الأنعام\", true, 128],\n  [954, 206, 39, 24, \"الأعراف\", true, 151],\n  [1160, 75, 88, 10, \"الأنفال\", false, 177],\n  [1235, 129, 113, 16, \"التوبة\", false, 187],\n  [1364, 109, 51, 11, \"يونس\", true, 208],\n  [1473, 123, 52, 10, \"هود\", true, 222],\n  [1596, 111, 53, 12, \"يوسف\", true, 236],\n  [1707, 43, 96, 6, \"الرعد\", false, 249],\n  [1750, 52, 72, 7, \"ابراهيم\", true, 256],\n  [1802, 99, 54, 6, \"الحجر\", true, 262],\n  [1901, 128, 70, 16, \"النحل\", true, 268],\n  [2029, 111, 50, 12, \"الإسراء\", true, 282],\n  [2140, 110, 69, 12, \"الكهف\", true, 294],\n  [2250, 98, 44, 6, \"مريم\", true, 305],\n  [2348, 135, 45, 8, \"طه\", true, 313],\n  [2483, 112, 73, 7, \"الأنبياء\", true, 322],\n  [2595, 78, 103, 10, \"الحج\", false, 332],\n  [2673, 118, 74, 6, \"المؤمنون\", true, 342],\n  [2791, 64, 102, 9, \"النور\", false, 350],\n  [2855, 77, 42, 6, \"الفرقان\", true, 360],\n  [2932, 227, 47, 11, \"الشعراء\", true, 367],\n  [3159, 93, 48, 7, \"النمل\", true, 377],\n  [3252, 88, 49, 8, \"القصص\", true, 386],\n  [3340, 69, 85, 7, \"العنكبوت\", true, 397],\n  [3409, 60, 84, 6, \"الروم\", true, 405],\n  [3469, 34, 57, 3, \"لقمان\", true, 411],\n  [3503, 30, 75, 3, \"السجدة\", true, 415],\n  [3533, 73, 90, 9, \"الأحزاب\", false, 418],\n  [3606, 54, 58, 6, \"سبإ\", true, 428],\n  [3660, 45, 43, 5, \"فاطر\", true, 435],\n  [3705, 83, 41, 5, \"يس\", true, 441],\n  [3788, 182, 56, 5, \"الصافات\", true, 446],\n  [3970, 88, 38, 5, \"ص\", true, 453],\n  [4058, 75, 59, 8, \"الزمر\", true, 459],\n  [4133, 85, 60, 9, \"غافر\", true, 468],\n  [4218, 54, 61, 6, \"فصلت\", true, 477],\n  [4272, 53, 62, 5, \"الشورى\", true, 483],\n  [4325, 89, 63, 7, \"الزخرف\", true, 490],\n  [4414, 59, 64, 3, \"الدخان\", true, 496],\n  [4473, 37, 65, 4, \"الجاثية\", true, 499],\n  [4510, 35, 66, 4, \"الأحقاف\", true, 503],\n  [4545, 38, 95, 4, \"محمد\", false, 507],\n  [4583, 29, 111, 4, \"الفتح\", false, 511],\n  [4612, 18, 106, 2, \"الحجرات\", false, 516],\n  [4630, 45, 34, 3, \"ق\", true, 518],\n  [4675, 60, 67, 3, \"الذاريات\", true, 521],\n  [4735, 49, 76, 2, \"الطور\", true, 524],\n  [4784, 62, 23, 3, \"النجم\", true, 526],\n  [4846, 55, 37, 3, \"القمر\", true, 529],\n  [4901, 78, 97, 3, \"الرحمن\", false, 532],\n  [4979, 96, 46, 3, \"الواقعة\", true, 535],\n  [5075, 29, 94, 4, \"الحديد\", false, 538],\n  [5104, 22, 105, 3, \"المجادلة\", false, 542],\n  [5126, 24, 101, 3, \"الحشر\", false, 546],\n  [5150, 13, 91, 2, \"الممتحنة\", false, 549],\n  [5163, 14, 109, 2, \"الصف\", false, 552],\n  [5177, 11, 110, 2, \"الجمعة\", false, 553],\n  [5188, 11, 104, 2, \"المنافقون\", false, 555],\n  [5199, 18, 108, 2, \"التغابن\", false, 556],\n  [5217, 12, 99, 2, \"الطلاق\", false, 558],\n  [5229, 12, 107, 2, \"التحريم\", false, 560],\n  [5241, 30, 77, 2, \"الملك\", true, 562],\n  [5271, 52, 2, 2, \"القلم\", true, 565],\n  [5323, 52, 78, 2, \"الحاقة\", true, 567],\n  [5375, 44, 79, 2, \"المعارج\", true, 569],\n  [5419, 28, 71, 2, \"نوح\", true, 571],\n  [5447, 28, 40, 2, \"الجن\", true, 572],\n  [5475, 20, 3, 2, \"المزمل\", true, 574],\n  [5495, 56, 4, 2, \"المدثر\", true, 576],\n  [5551, 40, 31, 2, \"القيامة\", true, 578],\n  [5591, 31, 98, 2, \"الانسان\", false, 579],\n  [5622, 50, 33, 2, \"المرسلات\", true, 581],\n  [5672, 40, 80, 2, \"النبإ\", true, 582],\n  [5712, 46, 81, 2, \"النازعات\", true, 584],\n  [5758, 42, 24, 1, \"عبس\", true, 585],\n  [5800, 29, 7, 1, \"التكوير\", true, 586],\n  [5829, 19, 82, 1, \"الإنفطار\", true, 587],\n  [5848, 36, 86, 1, \"المطففين\", true, 588],\n  [5884, 25, 83, 1, \"الإنشقاق\", true, 589],\n  [5909, 22, 27, 1, \"البروج\", true, 590],\n  [5931, 17, 36, 1, \"الطارق\", true, 591],\n  [5948, 19, 8, 1, \"الأعلى\", true, 592],\n  [5967, 26, 68, 1, \"الغاشية\", true, 592],\n  [5993, 30, 10, 1, \"الفجر\", true, 593],\n  [6023, 20, 35, 1, \"البلد\", true, 594],\n  [6043, 15, 26, 1, \"الشمس\", true, 595],\n  [6058, 21, 9, 1, \"الليل\", true, 596],\n  [6079, 11, 11, 1, \"الضحى\", true, 596],\n  [6090, 8, 12, 1, \"الشرح\", true, 596],\n  [6098, 8, 28, 1, \"التين\", true, 597],\n  [6106, 19, 1, 1, \"العلق\", true, 597],\n  [6125, 5, 25, 1, \"القدر\", true, 598],\n  [6130, 8, 100, 1, \"البينة\", false, 599],\n  [6138, 8, 93, 1, \"الزلزلة\", false, 599],\n  [6146, 11, 14, 1, \"العاديات\", true, 600],\n  [6157, 11, 30, 1, \"القارعة\", true, 600],\n  [6168, 8, 16, 1, \"التكاثر\", true, 600],\n  [6176, 3, 13, 1, \"العصر\", true, 601],\n  [6179, 9, 32, 1, \"الهمزة\", true, 601],\n  [6188, 5, 19, 1, \"الفيل\", true, 601],\n  [6193, 4, 29, 1, \"قريش\", true, 602],\n  [6197, 7, 17, 1, \"الماعون\", true, 602],\n  [6204, 3, 15, 1, \"الكوثر\", true, 602],\n  [6207, 6, 18, 1, \"الكافرون\", true, 603],\n  [6213, 3, 114, 1, \"النصر\", false, 603],\n  [6216, 5, 6, 1, \"المسد\", true, 603],\n  [6221, 4, 22, 1, \"الإخلاص\", true, 604],\n  [6225, 5, 20, 1, \"الفلق\", true, 604],\n  [6230, 6, 21, 1, \"الناس\", true, 604],\n  [6236, 0, -1, -1, \"\", false, -1]\n]\n","import { SuraList } from \"./lists/surahList\"\nimport { Surah, SurahMeta } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * Gets the metadata for the specified Surah.\n *\n * @param surah - The Surah to get the metadata for.\n * @returns The metadata for the specified Surah.\n */\nexport function getSurahMeta(surah: Surah): SurahMeta {\n  checkValidSurah(surah)\n  return SuraList[surah]\n}\n","import { getSurahMeta } from \"./getSurahMeta\"\nimport { Surah } from \"./types\"\n\n/**\n * Get the number of ayahs (verses) in the specified surah.\n * @param surah - The surah number.\n * @returns The number of ayahs in the specified surah.\n */\nexport function getAyaCountinSura(surah: Surah): number {\n  return getSurahMeta(surah)[1]\n}\n","import { meta } from \"./const\"\nimport { getAyaCountinSura } from \"./getAyaCountinSura\"\n\n/**\n * Checks if the given Surah (chapter) number is valid.\n *\n * @param surah - The Surah (chapter) number to check.\n * @param checkOnly - If true, the function will only check the validity and not throw an error.\n * @returns True if the Surah number is valid, false otherwise.\n */\nexport function checkValidSurah(surah: number, checkOnly = false): boolean {\n  if (typeof surah !== \"number\" || !Number.isInteger(surah)) {\n    if (checkOnly) return false\n    throw new TypeError(\"Ayah ID must be an integer\")\n  }\n\n  if (surah < 1 || surah > meta.numSuras) {\n    if (checkOnly) return false\n    throw new RangeError(\"Surah must be between 1 and \" + meta.numSuras)\n  }\n  return true\n}\n\n/**\n * Checks if the given Surah and Ayah (verse) numbers are valid.\n *\n * @param surah - The Surah (chapter) number to check.\n * @param ayah - The Ayah (verse) number to check.\n * @param checkOnly - If true, the function will only check the validity and not throw an error.\n * @returns True if the Surah and Ayah numbers are valid, false otherwise.\n */\nexport function checkValidSurahAyah(surah: number, ayah: number, checkOnly = false): boolean {\n  if (!checkValidSurah(surah, checkOnly)) return false\n\n  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {\n    if (checkOnly) return false\n    throw new RangeError(\"Ayah must be between 1 and \" + getAyaCountinSura(surah))\n  }\n  return true\n}\n\n/**\n * Checks if the given Ayah (verse) ID is valid.\n *\n * @param ayahId - The Ayah (verse) ID to check.\n * @param checkOnly - If true, the function will only check the validity and not throw an error.\n * @returns True if the Ayah ID is valid, otherwise throws a RangeError.\n */\nexport function checkValidAyahId(ayahId: number, checkOnly = false): boolean {\n  if (typeof ayahId !== \"number\" || !Number.isInteger(ayahId)) {\n    if (checkOnly) return false\n    throw new TypeError(\"Ayah ID must be an integer\")\n  }\n  if (ayahId < 1 || ayahId > meta.numAyas) {\n    if (checkOnly) return false\n    throw new RangeError(\"Ayah ID must be between 1 and \" + meta.numAyas)\n  }\n  return true\n}\n","import { AyahNo, SurahAyahSegment } from \"./types\"\nimport { checkValidSurahAyah } from \"./validation\"\n\n/**\n *  Turns String of type \"x:y\" or \"x:y1-y2\" to array [x,y] or [x,[y1,y2]] respectively\n * @param {*} str String of type \"x:y\" or \"x:y1-y2\"\n * @returns {array} array [x,y] or [x,[y1,y2]] respectively\n */\nexport function ayaStringSplitter(str: string): SurahAyahSegment {\n  const [surahStr, ayahsStr] = str.trim().split(\":\")\n  const surah = parseInt(surahStr, 10)\n\n  if (isNaN(surah)) {\n    throw \"Error in surah format \" + str\n  }\n\n  if (!ayahsStr) {\n    throw \"Error in data \" + str\n  }\n\n  let ayahs: AyahNo | [AyahNo, AyahNo]\n  if (ayahsStr.includes(\"-\")) {\n    ayahs = ayahsStr.split(\"-\").map((a) => {\n      const ayah = parseInt(a, 10)\n      if (isNaN(ayah) || ayah === 0) {\n        throw \"Error in ayah \" + a\n      }\n      return ayah\n    }) as [AyahNo, AyahNo]\n    if (ayahs[0] > ayahs[1]) throw \"Error in ayah range \" + str\n  }\n  else {\n    ayahs = parseInt(ayahsStr, 10)\n    if (isNaN(ayahs) || ayahs === 0) {\n      throw \"Error in data \" + str\n    }\n    checkValidSurahAyah(surah, ayahs)\n  }\n\n  return [surah, ayahs]\n}\n","import { getSurahMeta } from \"./getSurahMeta\"\nimport { AyahId, AyahNo, Surah } from \"./types\"\nimport { checkValidSurahAyah } from \"./validation\"\n\n/**\n * Get the ayah ID for the given surah and ayah number.\n * @param surah - The surah number.\n * @param ayah - The ayah number within the surah.\n * @returns The ayah ID for the given surah and ayah number.\n */\nexport function findAyaidBySurah(surah: Surah, ayah: AyahNo): AyahId {\n  checkValidSurahAyah(surah, ayah)\n  const [startAyahId] = getSurahMeta(surah)\n  return startAyahId + ayah\n}\n","import { AyahId } from \"../types\"\n\n// ------------------ Juz Data ---------------------\nexport const JuzList: AyahId[] = [\n  0, 1, 149, 260, 386, 517, 641, 751, 900, 1042, 1201, 1328, 1479, 1649, 1803,\n  2030, 2215, 2484, 2674, 2876, 3215, 3386, 3564, 3733, 4090, 4265, 4511, 4706,\n  5105, 5242, 5673, 6237\n]\n","import { JuzList } from \"./lists/juzList\"\nimport { AyahId, Juz } from \"./types\"\nimport { checkValidAyahId } from \"./validation\"\n\n/**\n * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.\n *\n * @param ayaId - The ID of the Ayah (verse) to find the Juz for.\n * @returns The Juz (part) of the Quran that contains the given Ayah ID.\n */\nexport function findJuzByAyaid(ayaId: AyahId): Juz {\n  checkValidAyahId(ayaId)\n\n  return JuzList.findIndex(x => x > ayaId) - 1\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { checkValidSurahAyah } from \"./validation\"\n\n/**\n * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.\n * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.\n * @returns The Juz (part) number that the given Ayah belongs to.\n */\nexport function findJuz(surah: Surah, ayah: AyahNo = 1, ayahMode = false): Juz {\n  const ayahId: AyahId = ayahMode\n    ? ayah\n    : ((checkValidSurahAyah(surah, ayah)\n      && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return findJuzByAyaid(ayahId)\n}\n","import { SuraList } from \"./lists/surahList\"\nimport { AyahId, Surah, SurahAyah } from \"./types\"\nimport { checkValidAyahId } from \"./validation\"\n\n/**\n * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.\n *\n * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.\n * @returns An array containing the Surah number and the Ayah number within that Surah.\n */\nexport function findSurahByAyaid(ayaId: AyahId): SurahAyah {\n  checkValidAyahId(ayaId)\n\n  const suraNum: Surah = SuraList.findIndex(x => x[0] >= ayaId) - 1\n  return [suraNum, ayaId - SuraList[suraNum][0]]\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { JuzList } from \"./lists/juzList\"\nimport { SuraList } from \"./lists/surahList\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.\n *\n * @param surah - The surah (chapter) that contains the ayah.\n * @param ayah - The ayah (verse) number.\n * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.\n * @returns An object containing the following properties:\n *   - `juz`: The juz (section) that contains the ayah.\n *   - `leftAyahId`: The ayah ID of the first ayah in the juz.\n *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).\n */\nexport function findJuzAndShift(\n  surah: Surah,\n  ayah: AyahNo,\n  ayahMode = false\n): {\n    juz: Juz\n    leftAyahId: AyahId\n    ayahsBetweenJuzSurah: number\n  } {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  const juz = findJuzByAyaid(ayahId)\n  const leftAyahId = JuzList[juz]\n  if (ayahMode) [surah] = findSurahByAyaid(ayahId)\n  const [surahStartAyahId] = SuraList[surah]\n  return {\n    juz,\n    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,\n    leftAyahId\n  }\n}\n","import { AyahId } from \"../types\"\n\n// ------------------ Hizb Data ---------------------\nexport const HizbQuarterList: AyahId[] = [\n  0, 1, 33, 51, 67, 82, 99, 113, 131, 149, 165, 184, 196, 210, 226, 240, 250,\n  260, 270, 279, 290, 308, 326, 345, 368, 386, 406, 426, 446, 464, 479, 494,\n  505, 517, 529, 551, 567, 581, 593, 607, 628, 641, 656, 670, 681, 696, 710,\n  720, 736, 751, 766, 778, 802, 825, 848, 863, 884, 900, 916, 930, 940, 955,\n  985, 1001, 1019, 1042, 1071, 1096, 1110, 1125, 1143, 1161, 1182, 1201, 1221,\n  1236, 1254, 1269, 1281, 1295, 1310, 1328, 1346, 1357, 1375, 1390, 1417, 1435,\n  1454, 1479, 1497, 1514, 1534, 1557, 1581, 1603, 1626, 1649, 1673, 1697, 1712,\n  1726, 1742, 1760, 1778, 1803, 1852, 1902, 1931, 1952, 1976, 1991, 2012, 2030,\n  2052, 2079, 2099, 2128, 2157, 2172, 2191, 2215, 2239, 2272, 2309, 2349, 2403,\n  2431, 2459, 2484, 2512, 2534, 2566, 2596, 2614, 2633, 2655, 2674, 2709, 2748,\n  2792, 2812, 2826, 2844, 2856, 2876, 2908, 2933, 2984, 3043, 3113, 3160, 3186,\n  3215, 3241, 3264, 3281, 3303, 3328, 3341, 3366, 3386, 3410, 3440, 3463, 3491,\n  3514, 3534, 3551, 3564, 3584, 3593, 3616, 3630, 3652, 3675, 3701, 3733, 3765,\n  3810, 3871, 3933, 3991, 4022, 4066, 4090, 4111, 4134, 4154, 4174, 4199, 4227,\n  4243, 4265, 4285, 4299, 4323, 4349, 4382, 4431, 4485, 4511, 4531, 4555, 4578,\n  4601, 4613, 4626, 4657, 4706, 4759, 4810, 4855, 4902, 4980, 5054, 5091, 5105,\n  5118, 5137, 5157, 5178, 5192, 5218, 5230, 5242, 5272, 5324, 5394, 5448, 5495,\n  5552, 5610, 5673, 5759, 5830, 5885, 5949, 6024, 6091, 6155, 6237\n]\n","import { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { HizbQuarterList } from \"./lists/hizbList\"\nimport { AyahId, JuzHizb } from \"./types\"\nimport { checkValidAyahId } from \"./validation\"\n\n/**\n * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.\n *\n * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.\n * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.\n */\nexport function findJuzHizbByAyaid(ayaId: AyahId): JuzHizb {\n  checkValidAyahId(ayaId)\n\n  const juz = findJuzByAyaid(ayaId)\n  const quarterIndex = HizbQuarterList.findIndex(x => x > ayaId) - 1\n\n  const hizb = quarterIndex % 8 || 8\n  return { juz, hizb, id: quarterIndex }\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzHizbByAyaid } from \"./findJuzHizbByAyaid\"\nimport { AyahId, AyahNo, JuzHizb, Surah } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.\n * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.\n * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.\n */\nexport function findJuzHizb(\n  surah: Surah,\n  ayah: AyahNo = 1,\n  ayahMode = false\n): JuzHizb {\n  const ayahId: AyahId = ayahMode\n    ? ayah\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return findJuzHizbByAyaid(ayahId)\n}\n","import { meta } from \"./const\"\nimport { findJuzAndShift } from \"./findJuzAndShift\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { JuzList } from \"./lists/juzList\"\nimport { AyahNo, Juz, JuzMeta, Surah } from \"./types\"\n\n/**\n * Finds the JuzMeta for a given Surah and Ayah.\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number.\n * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.\n */\nexport function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {\n  const {\n    juz: leftjuz,\n    ayahsBetweenJuzSurah,\n    leftAyahId\n  } = findJuzAndShift(surah, ayah)\n\n  let rightJuz: Juz = leftjuz\n  while (\n    rightJuz < meta.numJuzs\n    && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah\n  ) {\n    rightJuz++\n  }\n\n  return {\n    leftjuz,\n    ayahsBetweenJuzSurah,\n    rightJuz,\n    leftAyahId,\n    rightAyahId: JuzList[rightJuz + 1]\n  }\n}\n","import { AyahId } from \"../types\"\n\nexport const PageList: AyahId[] = [\n  0, 1, 8, 13, 24, 32, 37, 45, 56, 65, 69, 77, 84, 91, 96, 101, 109, 113, 120,\n  127, 134, 142, 149, 153, 161, 171, 177, 184, 189, 194, 198, 204, 210, 218,\n  223, 227, 232, 238, 241, 245, 253, 256, 260, 264, 267, 272, 277, 282, 289,\n  290, 294, 303, 309, 316, 323, 331, 339, 346, 355, 364, 371, 377, 385, 394,\n  402, 409, 415, 426, 434, 442, 447, 451, 459, 467, 474, 480, 488, 494, 500,\n  505, 508, 513, 517, 520, 527, 531, 538, 545, 553, 559, 568, 573, 580, 585,\n  588, 595, 599, 607, 615, 621, 628, 634, 641, 648, 656, 664, 669, 672, 675,\n  679, 683, 687, 693, 701, 706, 711, 715, 720, 727, 734, 740, 746, 752, 759,\n  765, 773, 778, 783, 790, 798, 808, 817, 825, 834, 842, 849, 858, 863, 871,\n  880, 884, 891, 900, 908, 914, 921, 927, 932, 936, 941, 947, 955, 966, 977,\n  985, 992, 998, 1006, 1012, 1022, 1028, 1036, 1042, 1050, 1059, 1075, 1085,\n  1092, 1098, 1104, 1110, 1114, 1118, 1125, 1133, 1142, 1150, 1161, 1169, 1177,\n  1186, 1194, 1201, 1206, 1213, 1222, 1230, 1236, 1242, 1249, 1256, 1262, 1267,\n  1272, 1276, 1283, 1290, 1297, 1304, 1308, 1315, 1322, 1329, 1335, 1342, 1347,\n  1353, 1358, 1365, 1371, 1379, 1385, 1390, 1398, 1407, 1418, 1426, 1435, 1443,\n  1453, 1462, 1471, 1479, 1486, 1493, 1502, 1511, 1519, 1527, 1536, 1545, 1555,\n  1562, 1571, 1582, 1591, 1601, 1611, 1619, 1627, 1634, 1640, 1649, 1660, 1666,\n  1675, 1683, 1692, 1700, 1708, 1713, 1721, 1726, 1736, 1742, 1750, 1756, 1761,\n  1769, 1775, 1784, 1793, 1803, 1818, 1834, 1854, 1873, 1893, 1908, 1916, 1928,\n  1936, 1944, 1956, 1966, 1974, 1981, 1989, 1995, 2004, 2012, 2020, 2030, 2037,\n  2047, 2057, 2068, 2079, 2088, 2096, 2105, 2116, 2126, 2134, 2145, 2156, 2161,\n  2168, 2175, 2186, 2194, 2202, 2215, 2224, 2238, 2251, 2262, 2276, 2289, 2302,\n  2315, 2327, 2346, 2361, 2386, 2400, 2413, 2425, 2436, 2447, 2462, 2474, 2484,\n  2494, 2508, 2519, 2528, 2541, 2556, 2565, 2574, 2585, 2596, 2601, 2611, 2619,\n  2626, 2634, 2642, 2651, 2660, 2668, 2674, 2691, 2701, 2716, 2733, 2748, 2763,\n  2778, 2792, 2802, 2812, 2819, 2823, 2828, 2835, 2845, 2850, 2853, 2858, 2867,\n  2876, 2888, 2899, 2911, 2923, 2933, 2952, 2972, 2993, 3016, 3044, 3069, 3092,\n  3116, 3139, 3160, 3173, 3182, 3195, 3204, 3215, 3223, 3236, 3248, 3258, 3266,\n  3274, 3281, 3288, 3296, 3303, 3312, 3323, 3330, 3337, 3347, 3355, 3364, 3371,\n  3379, 3386, 3393, 3404, 3415, 3425, 3434, 3442, 3451, 3460, 3470, 3481, 3489,\n  3498, 3504, 3515, 3524, 3534, 3540, 3549, 3556, 3564, 3569, 3577, 3584, 3588,\n  3596, 3607, 3614, 3621, 3629, 3638, 3646, 3655, 3664, 3672, 3679, 3691, 3699,\n  3705, 3718, 3733, 3746, 3760, 3776, 3789, 3813, 3840, 3865, 3891, 3915, 3942,\n  3971, 3987, 3997, 4013, 4032, 4054, 4064, 4069, 4080, 4090, 4099, 4106, 4115,\n  4126, 4133, 4141, 4150, 4159, 4167, 4174, 4183, 4192, 4200, 4211, 4219, 4230,\n  4239, 4248, 4257, 4265, 4273, 4283, 4288, 4295, 4304, 4317, 4324, 4336, 4348,\n  4359, 4373, 4386, 4399, 4415, 4433, 4454, 4474, 4487, 4496, 4506, 4516, 4525,\n  4531, 4539, 4546, 4557, 4565, 4575, 4584, 4593, 4599, 4607, 4612, 4617, 4624,\n  4631, 4646, 4666, 4682, 4706, 4727, 4750, 4767, 4785, 4811, 4829, 4853, 4874,\n  4896, 4918, 4942, 4969, 4996, 5030, 5056, 5079, 5087, 5094, 5100, 5105, 5111,\n  5116, 5126, 5130, 5136, 5143, 5151, 5156, 5162, 5169, 5178, 5186, 5193, 5200,\n  5209, 5218, 5223, 5230, 5237, 5242, 5254, 5268, 5287, 5314, 5332, 5358, 5386,\n  5415, 5430, 5448, 5461, 5476, 5495, 5513, 5543, 5571, 5597, 5617, 5642, 5673,\n  5703, 5728, 5759, 5801, 5830, 5855, 5883, 5910, 5932, 5964, 5994, 6017, 6044,\n  6073, 6099, 6126, 6138, 6156, 6177, 6194, 6208, 6222, 6237\n]\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { PageList } from \"./lists/pageList\"\nimport { AyahId, AyahNo, Page, Surah } from \"./types\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Finds the page number for the given Surah and Ayah number.\n *\n * @param surah - The Surah to find the page for.\n * @param ayah - The Ayah number to find the page for.\n * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.\n * @returns The page number for the given Surah and Ayah.\n */\nexport function findPage(surah: Surah, ayah: AyahNo, ayahMode = false): Page {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return PageList.findIndex(x => x > ayahId) - 1\n}\n","import { meta } from \"./const\"\nimport { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findJuzByAyaid } from \"./findJuzByAyaid\"\nimport { findPage } from \"./findPage\"\nimport { JuzList } from \"./lists/juzList\"\nimport { PageList } from \"./lists/pageList\"\nimport { SuraList } from \"./lists/surahList\"\nimport { AyahId, AyahNo, Juz, Page, Surah, SurahAyah } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * ALternative deprecated method\n * @param {*} pageNum\n */\n// export function pageMetaOld(pageNum: number): any {\n//   if (pageNum < 1 || pageNum > meta.numPages)\n//   throw new RangeError(\"pagenum must be between 1 and \" + meta.numPages)\n//   const [curPage, nextPage] = [\n//     findSurahByAyaid(PageList[pageNum]),\n//     findSurahByAyaid(PageList[pageNum + 1]),\n//   ]\n//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [\n//     curPage[0],\n//     curPage[1],\n//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],\n//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,\n//   ]\n//   return {\n//     pageNum,\n//     first: [firstSurah, firstAyah],\n//     last: [lastSurah, lastAyah],\n//   }\n// }\n\n/**\n * Find range containing ayah according to the mode\n * @param surah\n * @param ayah\n * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'\n * default is all\n */\nexport function findRangeAroundAyah(\n  surah: Surah,\n  ayah: AyahNo,\n  mode: \"juz\" | \"surah\" | \"ayah\" | \"page\" | \"all\",\n  ayahMode = false\n): SurahAyah {\n  const ayahId: AyahId = ayahMode\n    ? ayah\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  switch (mode) {\n    case \"juz\": {\n      const juz: Juz = findJuzByAyaid(ayahId)\n      return [JuzList[juz], JuzList[juz + 1] - 1]\n    }\n\n    case \"surah\": {\n      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]]\n    }\n\n    case \"ayah\": {\n      return [ayahId, ayahId]\n    }\n    case \"page\": {\n      const page: Page = findPage(-1, ayahId, true)\n      return [PageList[page], PageList[page + 1] - 1]\n    }\n\n    case \"all\":\n    default:\n      return [1, meta.numAyas]\n  }\n}\n","/**\n * Performs a binary search on the given array to find the index of the specified element.\n *\n * @param ar - The array to search.\n * @param el - The element to search for.\n * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.\n * @returns The index of the element if found, or a negative value indicating the insertion point if not found.\n */\nexport function binarySearch(\n  ar: Array<number>,\n  el: number,\n  compare_fn: (a: number, b: number) => number = (a, b) => a - b\n): number {\n  let m = 0\n  let n = ar.length - 1\n  while (m <= n) {\n    const k = (n + m) >> 1\n    const cmp = compare_fn(el, ar[k])\n    if (cmp > 0) {\n      m = k + 1\n    }\n    else if (cmp < 0) {\n      n = k - 1\n    }\n    else {\n      return k\n    }\n  }\n  return -m - 1\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { JuzList } from \"./lists/juzList\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { binarySearch } from \"./utils\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Returns the Juz (part) number that the given Ayah (verse) belongs to.\n *\n *\n * @param surah - The Surah (chapter) number.\n * @param ayah - The Ayah (verse) number.\n * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.\n * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number\n */\nexport function isAyahJuzFirst(\n  surah: Surah,\n  ayah: AyahNo,\n  ayahMode = false\n): Juz {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return binarySearch(JuzList, ayahId)\n  // return JuzList.findIndex((x: AyahId) => x == ayahId)\n}\n","import { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { PageList } from \"./lists/pageList\"\nimport { AyahId, AyahNo, Juz, Surah } from \"./types\"\nimport { binarySearch } from \"./utils\"\nimport { checkValidAyahId, checkValidSurah } from \"./validation\"\n\n/**\n * Determines if the given ayah is the first ayah of a juz.\n *\n * @param surah - The surah number.\n * @param ayah - The ayah number.\n * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.\n * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.\n */\nexport function isAyahPageFirst(\n  surah: Surah,\n  ayah: AyahNo,\n  ayahMode = false\n): Juz {\n  const ayahId: AyahId = ayahMode\n    ? ((checkValidAyahId(ayah) && ayah) as AyahId)\n    : ((checkValidSurah(surah) && findAyaidBySurah(surah, ayah)) as AyahId)\n\n  return binarySearch(PageList, ayahId)\n  // return PageList.findIndex((x: AyahId) => x == ayahId)\n}\n","import { AyahId } from \"../types\"\n\n// ------------------ Manzil Data ---------------------\nexport const ManzilList: AyahId[] = [\n  0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237\n]\n","import { AyahId } from \"../types\"\n\n// ------------------ Ruku Data ---------------------\nexport const RukuList: AyahId[] = [\n  0, 1, 8, 15, 28, 37, 47, 54, 67, 69, 79, 90, 94, 104, 111, 120, 129, 137, 149,\n  155, 160, 171, 175, 184, 190, 196, 204, 218, 224, 229, 236, 239, 243, 250,\n  256, 261, 265, 268, 274, 281, 289, 291, 294, 303, 314, 324, 335, 348, 357,\n  365, 374, 385, 395, 403, 414, 423, 437, 442, 449, 465, 474, 483, 494, 504,\n  508, 516, 519, 527, 536, 544, 553, 564, 570, 581, 585, 590, 594, 598, 606,\n  609, 620, 628, 635, 646, 656, 665, 670, 675, 681, 689, 696, 704, 713, 720,\n  726, 736, 747, 756, 763, 770, 778, 785, 790, 800, 810, 820, 831, 840, 845,\n  850, 860, 872, 880, 884, 890, 900, 911, 919, 930, 934, 940, 944, 955, 965,\n  980, 986, 994, 1002, 1008, 1013, 1019, 1027, 1039, 1048, 1054, 1063, 1081,\n  1084, 1096, 1102, 1106, 1112, 1117, 1126, 1136, 1143, 1161, 1171, 1180, 1189,\n  1198, 1205, 1209, 1219, 1225, 1230, 1236, 1242, 1252, 1260, 1265, 1273, 1278,\n  1295, 1302, 1308, 1316, 1325, 1335, 1346, 1354, 1358, 1365, 1375, 1385, 1395,\n  1405, 1418, 1425, 1435, 1447, 1457, 1468, 1474, 1482, 1498, 1509, 1523, 1534,\n  1542, 1557, 1569, 1583, 1597, 1603, 1617, 1626, 1632, 1639, 1646, 1654, 1665,\n  1676, 1690, 1701, 1708, 1715, 1726, 1734, 1739, 1745, 1751, 1757, 1763, 1772,\n  1778, 1785, 1792, 1803, 1818, 1828, 1847, 1863, 1882, 1902, 1911, 1923, 1927,\n  1936, 1942, 1952, 1962, 1967, 1972, 1978, 1985, 1991, 2002, 2012, 2021, 2030,\n  2040, 2052, 2060, 2070, 2082, 2090, 2100, 2107, 2114, 2123, 2130, 2141, 2153,\n  2158, 2163, 2172, 2185, 2190, 2194, 2200, 2211, 2223, 2242, 2251, 2266, 2291,\n  2301, 2316, 2333, 2349, 2373, 2403, 2425, 2438, 2453, 2464, 2477, 2484, 2494,\n  2513, 2525, 2534, 2559, 2577, 2596, 2606, 2618, 2621, 2629, 2634, 2644, 2653,\n  2660, 2668, 2674, 2696, 2706, 2724, 2751, 2766, 2792, 2802, 2812, 2818, 2826,\n  2832, 2842, 2849, 2853, 2856, 2865, 2876, 2890, 2900, 2916, 2933, 2942, 2966,\n  2985, 3002, 3037, 3055, 3073, 3092, 3108, 3124, 3160, 3174, 3191, 3204, 3218,\n  3226, 3242, 3253, 3266, 3274, 3281, 3295, 3303, 3313, 3328, 3341, 3354, 3363,\n  3371, 3385, 3392, 3404, 3410, 3420, 3429, 3437, 3450, 3463, 3470, 3481, 3489,\n  3504, 3515, 3526, 3534, 3542, 3554, 3561, 3568, 3574, 3586, 3592, 3602, 3607,\n  3616, 3628, 3637, 3643, 3652, 3661, 3668, 3675, 3687, 3698, 3706, 3718, 3738,\n  3756, 3773, 3789, 3810, 3863, 3902, 3927, 3971, 3985, 3997, 4011, 4035, 4059,\n  4068, 4080, 4090, 4100, 4111, 4122, 4129, 4134, 4143, 4154, 4161, 4171, 4184,\n  4194, 4202, 4212, 4219, 4227, 4237, 4244, 4251, 4263, 4273, 4282, 4292, 4302,\n  4316, 4326, 4341, 4351, 4361, 4371, 4382, 4393, 4415, 4444, 4457, 4474, 4485,\n  4495, 4500, 4511, 4521, 4531, 4537, 4546, 4557, 4565, 4574, 4584, 4594, 4601,\n  4610, 4613, 4623, 4631, 4646, 4660, 4676, 4699, 4722, 4736, 4764, 4785, 4810,\n  4817, 4847, 4869, 4887, 4902, 4927, 4947, 4980, 5018, 5054, 5076, 5086, 5095,\n  5101, 5105, 5111, 5118, 5127, 5137, 5144, 5151, 5157, 5164, 5173, 5178, 5186,\n  5189, 5197, 5200, 5210, 5218, 5225, 5230, 5237, 5242, 5256, 5272, 5305, 5324,\n  5361, 5376, 5411, 5420, 5440, 5448, 5467, 5476, 5495, 5496, 5527, 5552, 5582,\n  5592, 5614, 5623, 5663, 5673, 5703, 5713, 5739, 5759, 5801, 5830, 5849, 5885,\n  5910, 5932, 5949, 5968, 5994, 6024, 6044, 6059, 6080, 6091, 6099, 6107, 6126,\n  6131, 6139, 6147, 6158, 6169, 6177, 6180, 6189, 6194, 6198, 6205, 6208, 6214,\n  6217, 6222, 6226, 6231, 6237\n]\n","import { Sajda } from \"../types\"\n\n// ------------------ Page Data ---------------------\n// code to get starting pages for surahs\n// let res=[];\n// Page.reduce((s,c,p)=>{\n// while (c[0]>=s)\n// {res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}\n// return s\n// },0)\n// export Page from \"~/js/qdata-page.json\"\n// ------------------ Sajda Data ---------------------\nexport const SajdaList: Sajda[] = [\n  // [ayaId, type]\n  [1160, \"recommended\"],\n  [1722, \"recommended\"],\n  [1951, \"recommended\"],\n  [2138, \"recommended\"],\n  [2308, \"recommended\"],\n  [2613, \"recommended\"],\n  [2672, \"recommended\"],\n  [2915, \"recommended\"],\n  [3185, \"recommended\"],\n  [3518, \"obligatory\"],\n  [3994, \"recommended\"],\n  [4256, \"obligatory\"],\n  [4846, \"obligatory\"],\n  [5905, \"recommended\"],\n  [6125, \"obligatory\"]\n]\n","import { meta } from \"./const\"\nimport { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { AyahId, AyahNo, Surah, SurahAyah } from \"./types\"\n\n/**\n * Get the next ayah for the given surah and ayah number.\n * @param surah - The surah number.\n * @param ayah - The ayah number within the surah.\n * @returns The surah and ayah number of the next ayah.\n */\nexport function nextAyah(surah: Surah, ayah: AyahNo): SurahAyah {\n  if (surah < 1 || surah > meta.numSuras)\n    throw new RangeError(\"Surah must be between 1 and \" + meta.numSuras)\n\n  const ayaid: AyahId = findAyaidBySurah(surah, ayah)\n  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1)\n}\n","import { meta } from \"./const\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { PageList } from \"./lists/pageList\"\nimport { AyahId, Page, PageMeta } from \"./types\"\n\n/**\n * Retrieves the page metadata for the specified page number.\n *\n * @param pageNum - The page number to retrieve metadata for.\n * @returns The page metadata, including the first and last ayah IDs on the page.\n * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).\n */\nexport function pageMeta(pageNum: Page): PageMeta {\n  // todo rename to getPageMeta in next major version\n  if (pageNum < 1 || pageNum > meta.numPages)\n    throw new RangeError(\"pagenum must be between 1 and \" + meta.numPages)\n\n  const [curPage, nextPage]: [AyahId, AyahId] = [\n    PageList[pageNum],\n    PageList[pageNum + 1]\n  ]\n\n  return {\n    pageNum,\n    first: findSurahByAyaid(curPage),\n    last: [...findSurahByAyaid(nextPage - 1)]\n  }\n}\n","import { meta } from \"./const\"\nimport { findAyaidBySurah } from \"./findAyaidBySurah\"\nimport { findSurahByAyaid } from \"./findSurahByAyaid\"\nimport { AyahId, AyahNo, Surah, SurahAyah } from \"./types\"\nimport { checkValidSurah } from \"./validation\"\n\n/**\n * Get the previous ayah for the given surah and ayah number.\n * @param surah - The surah number.\n * @param ayah - The ayah number within the surah.\n * @returns The surah and ayah number of the previous ayah.\n */\nexport function prevAyah(surah: Surah, ayah: AyahNo): SurahAyah {\n  checkValidSurah(surah)\n\n  const ayaid: AyahId = findAyaidBySurah(surah, ayah)\n  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1)\n}\n","import { SuraName } from \"../types\"\nexport const suraNames: (SuraName | [])[] = [\n  [],\n  [\"Al-Faatiha\", \"The Opening\"],\n  [\"Al-Baqara\", \"The Cow\"],\n  [\"Aal-i-Imraan\", \"The Family of Imraan\"],\n  [\"An-Nisaa\", \"The Women\"],\n  [\"Al-Maaida\", \"The Table\"],\n  [\"Al-An'aam\", \"The Cattle\"],\n  [\"Al-A'raaf\", \"The Heights\"],\n  [\"Al-Anfaal\", \"The Spoils of War\"],\n  [\"At-Tawba\", \"The Repentance\"],\n  [\"Yunus\", \"Jonas\"],\n  [\"Hud\", \"Hud\"],\n  [\"Yusuf\", \"Joseph\"],\n  [\"Ar-Ra'd\", \"The Thunder\"],\n  [\"Ibrahim\", \"Abraham\"],\n  [\"Al-Hijr\", \"The Rock\"],\n  [\"An-Nahl\", \"The Bee\"],\n  [\"Al-Israa\", \"The Night Journey\"],\n  [\"Al-Kahf\", \"The Cave\"],\n  [\"Maryam\", \"Mary\"],\n  [\"Taa-Haa\", \"Taa-Haa\"],\n  [\"Al-Anbiyaa\", \"The Prophets\"],\n  [\"Al-Hajj\", \"The Pilgrimage\"],\n  [\"Al-Muminoon\", \"The Believers\"],\n  [\"An-Noor\", \"The Light\"],\n  [\"Al-Furqaan\", \"The Criterion\"],\n  [\"Ash-Shu'araa\", \"The Poets\"],\n  [\"An-Naml\", \"The Ant\"],\n  [\"Al-Qasas\", \"The Stories\"],\n  [\"Al-Ankaboot\", \"The Spider\"],\n  [\"Ar-Room\", \"The Romans\"],\n  [\"Luqman\", \"Luqman\"],\n  [\"As-Sajda\", \"The Prostration\"],\n  [\"Al-Ahzaab\", \"The Clans\"],\n  [\"Saba\", \"Sheba\"],\n  [\"Faatir\", \"The Originator\"],\n  [\"Yaseen\", \"Yaseen\"],\n  [\"As-Saaffaat\", \"Those drawn up in Ranks\"],\n  [\"Saad\", \"The letter Saad\"],\n  [\"Az-Zumar\", \"The Groups\"],\n  [\"Al-Ghaafir\", \"The Forgiver\"],\n  [\"Fussilat\", \"Explained in detail\"],\n  [\"Ash-Shura\", \"Consultation\"],\n  [\"Az-Zukhruf\", \"Ornaments of gold\"],\n  [\"Ad-Dukhaan\", \"The Smoke\"],\n  [\"Al-Jaathiya\", \"Crouching\"],\n  [\"Al-Ahqaf\", \"The Dunes\"],\n  [\"Muhammad\", \"Muhammad\"],\n  [\"Al-Fath\", \"The Victory\"],\n  [\"Al-Hujuraat\", \"The Inner Apartments\"],\n  [\"Qaaf\", \"The letter Qaaf\"],\n  [\"Adh-Dhaariyat\", \"The Winnowing Winds\"],\n  [\"At-Tur\", \"The Mount\"],\n  [\"An-Najm\", \"The Star\"],\n  [\"Al-Qamar\", \"The Moon\"],\n  [\"Ar-Rahmaan\", \"The Beneficent\"],\n  [\"Al-Waaqia\", \"The Inevitable\"],\n  [\"Al-Hadid\", \"The Iron\"],\n  [\"Al-Mujaadila\", \"The Pleading Woman\"],\n  [\"Al-Hashr\", \"The Exile\"],\n  [\"Al-Mumtahana\", \"She that is to be examined\"],\n  [\"As-Saff\", \"The Ranks\"],\n  [\"Al-Jumu'a\", \"Friday\"],\n  [\"Al-Munaafiqoon\", \"The Hypocrites\"],\n  [\"At-Taghaabun\", \"Mutual Disillusion\"],\n  [\"At-Talaaq\", \"Divorce\"],\n  [\"At-Tahrim\", \"The Prohibition\"],\n  [\"Al-Mulk\", \"The Sovereignty\"],\n  [\"Al-Qalam\", \"The Pen\"],\n  [\"Al-Haaqqa\", \"The Reality\"],\n  [\"Al-Ma'aarij\", \"The Ascending Stairways\"],\n  [\"Nooh\", \"Noah\"],\n  [\"Al-Jinn\", \"The Jinn\"],\n  [\"Al-Muzzammil\", \"The Enshrouded One\"],\n  [\"Al-Muddaththir\", \"The Cloaked One\"],\n  [\"Al-Qiyaama\", \"The Resurrection\"],\n  [\"Al-Insaan\", \"Man\"],\n  [\"Al-Mursalaat\", \"The Emissaries\"],\n  [\"An-Naba\", \"The Announcement\"],\n  [\"An-Naazi'aat\", \"Those who drag forth\"],\n  [\"Abasa\", \"He frowned\"],\n  [\"At-Takwir\", \"The Overthrowing\"],\n  [\"Al-Infitaar\", \"The Cleaving\"],\n  [\"Al-Mutaffifin\", \"Defrauding\"],\n  [\"Al-Inshiqaaq\", \"The Splitting Open\"],\n  [\"Al-Burooj\", \"The Constellations\"],\n  [\"At-Taariq\", \"The Morning Star\"],\n  [\"Al-A'laa\", \"The Most High\"],\n  [\"Al-Ghaashiya\", \"The Overwhelming\"],\n  [\"Al-Fajr\", \"The Dawn\"],\n  [\"Al-Balad\", \"The City\"],\n  [\"Ash-Shams\", \"The Sun\"],\n  [\"Al-Lail\", \"The Night\"],\n  [\"Ad-Dhuhaa\", \"The Morning Hours\"],\n  [\"Ash-Sharh\", \"The Consolation\"],\n  [\"At-Tin\", \"The Fig\"],\n  [\"Al-Alaq\", \"The Clot\"],\n  [\"Al-Qadr\", \"The Power, Fate\"],\n  [\"Al-Bayyina\", \"The Evidence\"],\n  [\"Az-Zalzala\", \"The Earthquake\"],\n  [\"Al-Aadiyaat\", \"The Chargers\"],\n  [\"Al-Qaari'a\", \"The Calamity\"],\n  [\"At-Takaathur\", \"Competition\"],\n  [\"Al-Asr\", \"The Declining Day, Epoch\"],\n  [\"Al-Humaza\", \"The Traducer\"],\n  [\"Al-Fil\", \"The Elephant\"],\n  [\"Quraish\", \"Quraysh\"],\n  [\"Al-Maa'un\", \"Almsgiving\"],\n  [\"Al-Kawthar\", \"Abundance\"],\n  [\"Al-Kaafiroon\", \"The Disbelievers\"],\n  [\"An-Nasr\", \"Divine Support\"],\n  [\"Al-Masad\", \"The Palm Fibre\"],\n  [\"Al-Ikhlaas\", \"Sincerity\"],\n  [\"Al-Falaq\", \"The Dawn\"],\n  [\"An-Naas\", \"Mankind\"]\n]\n","import { SuraName } from \"../types\"\nexport const suraNames: (SuraName | [])[] = [\n  [],\n  [\"Аль-Фатиха\", \"Открывающая Коран\"],\n  [\"Аль-Бакара\", \"Корова\"],\n  [\"Аль ‘Имран\", \"Семейство ‘Имрана\"],\n  [\"Ан-Ниса\", \"Женщины\"],\n  [\"Аль-Маида\", \"Трапеза\"],\n  [\"Аль-Ан‘ам\", \"Скот\"],\n  [\"Аль-А‘раф\", \"Ограды\"],\n  [\"Аль-Анфаль\", \"Военная добыча\"],\n  [\"Ат-Тауба\", \"Покаяние\"],\n  [\"Юнус\", \"Иона\"],\n  [\"Худ\", \"Худ\"],\n  [\"Юсуф\", \"Иосиф\"],\n  [\"Ар-Ра‘д\", \"Гром\"],\n  [\"Ибрахим\", \"Авраам\"],\n  [\"Аль-Хиджр\", \"Хиджр\"],\n  [\"Ан-Нахль\", \"Пчёлы\"],\n  [\"Аль-Исра\", \"Ночной перенос\"],\n  [\"Аль-Кяхф\", \"Пещера\"],\n  [\"Марьям\", \"Мария\"],\n  [\"Та, ха\", \"Та, ха\"],\n  [\"Аль-Анбия\", \"Пророки\"],\n  [\"Аль-Хаджж\", \"Хадж\"],\n  [\"Аль-Му’минун\", \"Верующие\"],\n  [\"Ан-Нур\", \"Свет\"],\n  [\"Аль-Фуркан\", \"Различение\"],\n  [\"Аш-Шу‘ара\", \"Поэты\"],\n  [\"Ан-Намль\", \"Муравьи\"],\n  [\"Аль-Касас\", \"Рассказ\"],\n  [\"Аль-‘Анкабут\", \"Паук\"],\n  [\"Ар-Рум\", \"Ромеи\"],\n  [\"Лукман\", \"Лукман\"],\n  [\"Ас-Саджда\", \"Земной поклон\"],\n  [\"Аль-Ахзаб\", \"Полчища\"],\n  [\"Саба’\", \"Сава\"],\n  [\"Фатыр\", \"Зиждитель\"],\n  [\"Йа, син\", \"Йа, син\"],\n  [\"Ас-Саффат\", \"Стоящие в ряд\"],\n  [\"Сад\", \"Сад\"],\n  [\"Аз-Зумар\", \"Толпы\"],\n  [\"Гафир\", \"Прощающий\"],\n  [\"Фуссылят\", \"Разъяснены\"],\n  [\"Аш-Шура\", \"Совет\"],\n  [\"Аз-Зухруф\", \"Украшения\"],\n  [\"Ад-Духан\", \"Дым\"],\n  [\"Аль-Джасия\", \"Коленопреклонённые\"],\n  [\"Аль-Ахкаф\", \"Барханы\"],\n  [\"Мухаммад\", \"Мухаммад\"],\n  [\"Аль-Фатх\", \"Победа\"],\n  [\"Аль-Худжурат\", \"Покои\"],\n  [\"Каф\", \"Каф\"],\n  [\"Аз-Зарият\", \"Рассеивающие\"],\n  [\"Ат-Тур\", \"Гора\"],\n  [\"Ан-Наджм\", \"Звезда\"],\n  [\"Аль-Камар\", \"Луна\"],\n  [\"Ар-Рахман\", \"Милостивый\"],\n  [\"Аль-Ваки‘а\", \"Неизбежное\"],\n  [\"Аль-Хадид\", \"Железо\"],\n  [\"Аль-Муджадиля\", \"Препирающаяся\"],\n  [\"Аль-Хашр\", \"Сбор\"],\n  [\"Аль-Мумтахана\", \"Испытуемая\"],\n  [\"Ас-Сафф\", \"Ряд\"],\n  [\"Аль-Джуму‘а\", \"Собрание\"],\n  [\"Аль-Мунафикун\", \"Лицемеры\"],\n  [\"Ат-Тагабун\", \"Обделение\"],\n  [\"Ат-Таляк\", \"Развод\"],\n  [\"Ат-Тахрим\", \"Запрещение\"],\n  [\"Аль-Мульк\", \"Власть\"],\n  [\"Аль-Калям\", \"Перо\"],\n  [\"Аль-Хакка\", \"Неминуемое\"],\n  [\"Аль-Ма‘аридж\", \"Степени\"],\n  [\"Нух\", \"Ной\"],\n  [\"Аль-Джинн\", \"Джинны\"],\n  [\"Аль-Муззаммиль\", \"Закутавшийся\"],\n  [\"Аль-Муддассир\", \"Завернувшийся\"],\n  [\"Аль-Кияма\", \"Воскресение\"],\n  [\"Аль-Инсан\", \"Человек\"],\n  [\"Аль-Мурсалят\", \"Посылаемые\"],\n  [\"Ан-Наба’\", \"Весть\"],\n  [\"Ан-Нази‘ат\", \"Вырывающие\"],\n  [\"‘Абаса\", \"Нахмурился\"],\n  [\"Ат-Таквир\", \"Сворачивание\"],\n  [\"Аль-Инфитар\", \"Раскалывание\"],\n  [\"Аль-Мутаффифин\", \"Обвешивающие\"],\n  [\"Аль-Иншикак\", \"Разверзнется\"],\n  [\"Аль-Бурудж\", \"Созвездия\"],\n  [\"Ат-Тарик\", \"Ночной гость\"],\n  [\"Аль-А‘ля\", \"Всевышний\"],\n  [\"Аль-Гашия\", \"Покрывающее\"],\n  [\"Аль-Фаджр\", \"Заря\"],\n  [\"Аль-Баляд\", \"Город\"],\n  [\"Аш-Шамс\", \"Солнце\"],\n  [\"Аль-Лейль\", \"Ночь\"],\n  [\"Ад-Духа\", \"Утро\"],\n  [\"Аль-Инширах\", \"Раскрытие\"],\n  [\"Ат-Тин\", \"Смоковница\"],\n  [\"Аль-‘Аляк\", \"Сгусток крови\"],\n  [\"Аль-Кадр\", \"Величие\"],\n  [\"Аль-Баййина\", \"Ясный довод\"],\n  [\"Аз-Зальзаля\", \"Сотрясение\"],\n  [\"Аль-‘Адият\", \"Скачущие\"],\n  [\"Аль-Кари‘а\", \"Поражающее\"],\n  [\"Ат-Такясур\", \"Соперничество\"],\n  [\"Аль-‘Аср\", \"Предвечернее время\"],\n  [\"Аль-Хумаза\", \"Хулитель\"],\n  [\"Аль-Филь\", \"Слон\"],\n  [\"Курайш\", \"Курайшиты\"],\n  [\"Аль-Ма‘ун\", \"Утварь\"],\n  [\"Аль-Каусар\", \"Каусар\"],\n  [\"Аль-Кяфирун\", \"Неверующие\"],\n  [\"Ан-Наср\", \"Помощь\"],\n  [\"Аль-Масад\", \"Пальмовые волокна\"],\n  [\"Аль-Ихляс\", \"Очищение веры\"],\n  [\"Аль-Фаляк\", \"Рассвет\"],\n  [\"Ан-Нас\", \"Люди\"]\n]\n"],"names":["suraNames"],"mappings":"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AAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,E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AAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,E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AAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,GAAG;EACL,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,EAAE,IAAI;EACN,E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"}
\ No newline at end of file
diff --git a/dist/quran-meta.min.js b/dist/quran-meta.min.js
index 476df8d..8793ecb 100644
--- a/dist/quran-meta.min.js
+++ b/dist/quran-meta.min.js
@@ -1 +1,2009 @@
-!function(a,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((a="undefined"!=typeof globalThis?globalThis:a||self).quranMeta={})}(this,(function(a){"use strict";var e=Object.freeze({numAyas:6236,numSuras:114,numPages:604,numJuzs:30,manzilCount:7});function n(a,n){if(void 0===n&&(n=!1),a<1||a>e.numSuras){if(n)return!1;throw new RangeError("Surah must be between 1 and "+e.numSuras)}return!0}var r=[[-1,-1,-1,-1,"",!1,-1],[0,7,5,1,"الفاتحة",!0,1],[7,286,87,40,"البقرة",!1,2],[293,200,89,20,"آل عمران",!1,50],[493,176,92,24,"النساء",!1,77],[669,120,112,16,"المائدة",!1,107],[789,165,55,20,"الأنعام",!0,128],[954,206,39,24,"الأعراف",!0,151],[1160,75,88,10,"الأنفال",!1,177],[1235,129,113,16,"التوبة",!1,187],[1364,109,51,11,"يونس",!0,208],[1473,123,52,10,"هود",!0,222],[1596,111,53,12,"يوسف",!0,236],[1707,43,96,6,"الرعد",!1,249],[1750,52,72,7,"ابراهيم",!0,256],[1802,99,54,6,"الحجر",!0,262],[1901,128,70,16,"النحل",!0,268],[2029,111,50,12,"الإسراء",!0,282],[2140,110,69,12,"الكهف",!0,294],[2250,98,44,6,"مريم",!0,305],[2348,135,45,8,"طه",!0,313],[2483,112,73,7,"الأنبياء",!0,322],[2595,78,103,10,"الحج",!1,332],[2673,118,74,6,"المؤمنون",!0,342],[2791,64,102,9,"النور",!1,350],[2855,77,42,6,"الفرقان",!0,360],[2932,227,47,11,"الشعراء",!0,367],[3159,93,48,7,"النمل",!0,377],[3252,88,49,8,"القصص",!0,386],[3340,69,85,7,"العنكبوت",!0,397],[3409,60,84,6,"الروم",!0,405],[3469,34,57,3,"لقمان",!0,411],[3503,30,75,3,"السجدة",!0,415],[3533,73,90,9,"الأحزاب",!1,418],[3606,54,58,6,"سبإ",!0,428],[3660,45,43,5,"فاطر",!0,435],[3705,83,41,5,"يس",!0,441],[3788,182,56,5,"الصافات",!0,446],[3970,88,38,5,"ص",!0,453],[4058,75,59,8,"الزمر",!0,459],[4133,85,60,9,"غافر",!0,468],[4218,54,61,6,"فصلت",!0,477],[4272,53,62,5,"الشورى",!0,483],[4325,89,63,7,"الزخرف",!0,490],[4414,59,64,3,"الدخان",!0,496],[4473,37,65,4,"الجاثية",!0,499],[4510,35,66,4,"الأحقاف",!0,503],[4545,38,95,4,"محمد",!1,507],[4583,29,111,4,"الفتح",!1,511],[4612,18,106,2,"الحجرات",!1,516],[4630,45,34,3,"ق",!0,518],[4675,60,67,3,"الذاريات",!0,521],[4735,49,76,2,"الطور",!0,524],[4784,62,23,3,"النجم",!0,526],[4846,55,37,3,"القمر",!0,529],[4901,78,97,3,"الرحمن",!1,532],[4979,96,46,3,"الواقعة",!0,535],[5075,29,94,4,"الحديد",!1,538],[5104,22,105,3,"المجادلة",!1,542],[5126,24,101,3,"الحشر",!1,546],[5150,13,91,2,"الممتحنة",!1,549],[5163,14,109,2,"الصف",!1,552],[5177,11,110,2,"الجمعة",!1,553],[5188,11,104,2,"المنافقون",!1,555],[5199,18,108,2,"التغابن",!1,556],[5217,12,99,2,"الطلاق",!1,558],[5229,12,107,2,"التحريم",!1,560],[5241,30,77,2,"الملك",!0,562],[5271,52,2,2,"القلم",!0,565],[5323,52,78,2,"الحاقة",!0,567],[5375,44,79,2,"المعارج",!0,569],[5419,28,71,2,"نوح",!0,571],[5447,28,40,2,"الجن",!0,572],[5475,20,3,2,"المزمل",!0,574],[5495,56,4,2,"المدثر",!0,576],[5551,40,31,2,"القيامة",!0,578],[5591,31,98,2,"الانسان",!1,579],[5622,50,33,2,"المرسلات",!0,581],[5672,40,80,2,"النبإ",!0,582],[5712,46,81,2,"النازعات",!0,584],[5758,42,24,1,"عبس",!0,585],[5800,29,7,1,"التكوير",!0,586],[5829,19,82,1,"الإنفطار",!0,587],[5848,36,86,1,"المطففين",!0,588],[5884,25,83,1,"الإنشقاق",!0,589],[5909,22,27,1,"البروج",!0,590],[5931,17,36,1,"الطارق",!0,591],[5948,19,8,1,"الأعلى",!0,592],[5967,26,68,1,"الغاشية",!0,592],[5993,30,10,1,"الفجر",!0,593],[6023,20,35,1,"البلد",!0,594],[6043,15,26,1,"الشمس",!0,595],[6058,21,9,1,"الليل",!0,596],[6079,11,11,1,"الضحى",!0,596],[6090,8,12,1,"الشرح",!0,596],[6098,8,28,1,"التين",!0,597],[6106,19,1,1,"العلق",!0,597],[6125,5,25,1,"القدر",!0,598],[6130,8,100,1,"البينة",!1,599],[6138,8,93,1,"الزلزلة",!1,599],[6146,11,14,1,"العاديات",!0,600],[6157,11,30,1,"القارعة",!0,600],[6168,8,16,1,"التكاثر",!0,600],[6176,3,13,1,"العصر",!0,601],[6179,9,32,1,"الهمزة",!0,601],[6188,5,19,1,"الفيل",!0,601],[6193,4,29,1,"قريش",!0,602],[6197,7,17,1,"الماعون",!0,602],[6204,3,15,1,"الكوثر",!0,602],[6207,6,18,1,"الكافرون",!0,603],[6213,3,114,1,"النصر",!1,603],[6216,5,6,1,"المسد",!0,603],[6221,4,22,1,"الإخلاص",!0,604],[6225,5,20,1,"الفلق",!0,604],[6230,6,21,1,"الناس",!0,604],[6236,0,-1,-1,"",!1,-1]];function i(a){return n(a),r[a]}function t(a,e,r){if(void 0===r&&(r=!1),!n(a,r))return!1;var t=i(a);t[0];var u=t[1];if(e<1||e>u){if(r)return!1;throw new RangeError("Ayah must be between 1 and "+u)}return!0}function u(a){if(a<1||a>e.numAyas)throw new RangeError("ayaid must be between 1 and "+e.numAyas);return!0}function h(a,e){return t(a,e),i(a)[0]+e}var o=[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];function l(a){return u(a),o.findIndex((function(e){return e>a}))-1}function s(a){u(a);var e=r.findIndex((function(e){return e[0]>=a}))-1;return[e,a-r[e][0]]}function A(a,e,i){void 0===i&&(i=!1);var t=i?u(e)&&e:n(a)&&h(a,e),A=l(t),d=o[A];return i&&(a=s(t)[0]),{juz:A,ayahsBetweenJuzSurah:r[a][0]-d+1,leftAyahId:d}}var d=[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];function f(a){u(a);var e=l(a),n=d.findIndex((function(e){return e>a}))-1;return{juz:e,hizb:n%8||8,id:n}}var T=[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];function m(a,e,r){void 0===r&&(r=!1);var i=r?u(e)&&e:n(a)&&h(a,e);return T.findIndex((function(a){return a>i}))-1}function c(a,e,n){void 0===n&&(n=function(a,e){return a-e});for(var r=0,i=a.length-1;r<=i;){var t=i+r>>1,u=n(e,a[t]);if(u>0)r=t+1;else{if(!(u<0))return t;i=t-1}}return-r-1}function y(a,e,n){if(n||2===arguments.length)for(var r,i=0,t=e.length;i<t;i++)!r&&i in e||(r||(r=Array.prototype.slice.call(e,0,i)),r[i]=e[i]);return a.concat(r||Array.prototype.slice.call(e))}"function"==typeof SuppressedError&&SuppressedError,a.HizbQuarterList=d,a.JuzList=o,a.ManzilList=[0,1,670,1365,2030,2933,3789,4631,6237],a.PageList=T,a.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],a.SajdaList=[[1160,"recommended"],[1722,"recommended"],[1951,"recommended"],[2138,"recommended"],[2308,"recommended"],[2613,"recommended"],[2672,"recommended"],[2915,"recommended"],[3185,"recommended"],[3518,"obligatory"],[3994,"recommended"],[4256,"obligatory"],[4846,"obligatory"],[5905,"recommended"],[6125,"obligatory"]],a.SuraList=r,a.ayaStringSplitter=function(a){var e,n=a.trim().split(":"),r=n[0],i=n[1],u=parseInt(r,10);if(isNaN(u))throw"Error in surah format "+a;if(!i)throw"Error in data "+a;if(i.includes("-")){if((e=i.split("-").map((function(a){var e=parseInt(a,10);if(isNaN(e)||0===e)throw"Error in ayah "+a;return e})))[0]>e[1])throw"Error in ayah range "+a}else{if(e=parseInt(i,10),isNaN(e)||0===e)throw"Error in data "+a;t(u,e)}return[u,e]},a.checkValidAyahId=u,a.checkValidSurah=n,a.checkValidSurahAyah=t,a.findAyaidBySurah=h,a.findJuz=function(a,e,n){return void 0===e&&(e=1),void 0===n&&(n=!1),l(n?e:t(a,e)&&h(a,e))},a.findJuzAndShift=A,a.findJuzByAyaid=l,a.findJuzHizb=function(a,e,r){return void 0===e&&(e=1),void 0===r&&(r=!1),f(r?e:n(a)&&h(a,e))},a.findJuzHizbByAyaid=f,a.findJuzMetaBySurah=function(a,n){void 0===n&&(n=1);for(var r=A(a,n),i=r.juz,t=r.ayahsBetweenJuzSurah,u=r.leftAyahId,h=i;h<e.numJuzs&&s(o[h+1])[0]==a;)h++;return{leftjuz:i,ayahsBetweenJuzSurah:t,rightJuz:h,leftAyahId:u,rightAyahId:o[h+1]}},a.findPage=m,a.findRangeAroundAyah=function(a,i,t,u){void 0===u&&(u=!1);var s=u?i:n(a)&&h(a,i);switch(t){case"juz":var A=l(s);return[o[A],o[A+1]-1];case"surah":return[r[a][0]+1,r[a+1][0]];case"ayah":return[s,s];case"page":var d=m(-1,s,!0);return[T[d],T[d+1]-1];default:return[1,e.numAyas]}},a.findSurahByAyaid=s,a.getAyaCountinSura=function(a){return i(a)[1]},a.getSurahMeta=i,a.isAyahJuzFirst=function(a,e,r){void 0===r&&(r=!1);var i=r?u(e)&&e:n(a)&&h(a,e);return c(o,i)},a.isAyahPageFirst=function(a,e,r){void 0===r&&(r=!1);var i=r?u(e)&&e:n(a)&&h(a,e);return c(T,i)},a.meta=e,a.nextAyah=function(a,n){if(a<1||a>e.numSuras)throw new RangeError("Surah must be between 1 and "+e.numSuras);var r=h(a,n);return s(r==e.numAyas?1:r+1)},a.pageMeta=function(a){if(a<1||a>e.numPages)throw new RangeError("pagenum must be between 1 and "+e.numPages);var n=[T[a],T[a+1]],r=n[1];return{pageNum:a,first:s(n[0]),last:y([],s(r-1),!0)}},a.prevAyah=function(a,r){n(a);var i=h(a,r);return s(1==i?e.numAyas:i-1)},a.suraNamesEn=[[],["Al-Faatiha","The Opening"],["Al-Baqara","The Cow"],["Aal-i-Imraan","The Family of Imraan"],["An-Nisaa","The Women"],["Al-Maaida","The Table"],["Al-An'aam","The Cattle"],["Al-A'raaf","The Heights"],["Al-Anfaal","The Spoils of War"],["At-Tawba","The Repentance"],["Yunus","Jonas"],["Hud","Hud"],["Yusuf","Joseph"],["Ar-Ra'd","The Thunder"],["Ibrahim","Abraham"],["Al-Hijr","The Rock"],["An-Nahl","The Bee"],["Al-Israa","The Night Journey"],["Al-Kahf","The Cave"],["Maryam","Mary"],["Taa-Haa","Taa-Haa"],["Al-Anbiyaa","The Prophets"],["Al-Hajj","The Pilgrimage"],["Al-Muminoon","The Believers"],["An-Noor","The Light"],["Al-Furqaan","The Criterion"],["Ash-Shu'araa","The Poets"],["An-Naml","The Ant"],["Al-Qasas","The Stories"],["Al-Ankaboot","The Spider"],["Ar-Room","The Romans"],["Luqman","Luqman"],["As-Sajda","The Prostration"],["Al-Ahzaab","The Clans"],["Saba","Sheba"],["Faatir","The Originator"],["Yaseen","Yaseen"],["As-Saaffaat","Those drawn up in Ranks"],["Saad","The letter Saad"],["Az-Zumar","The Groups"],["Al-Ghaafir","The Forgiver"],["Fussilat","Explained in detail"],["Ash-Shura","Consultation"],["Az-Zukhruf","Ornaments of gold"],["Ad-Dukhaan","The Smoke"],["Al-Jaathiya","Crouching"],["Al-Ahqaf","The Dunes"],["Muhammad","Muhammad"],["Al-Fath","The Victory"],["Al-Hujuraat","The Inner Apartments"],["Qaaf","The letter Qaaf"],["Adh-Dhaariyat","The Winnowing Winds"],["At-Tur","The Mount"],["An-Najm","The Star"],["Al-Qamar","The Moon"],["Ar-Rahmaan","The Beneficent"],["Al-Waaqia","The Inevitable"],["Al-Hadid","The Iron"],["Al-Mujaadila","The Pleading Woman"],["Al-Hashr","The Exile"],["Al-Mumtahana","She that is to be examined"],["As-Saff","The Ranks"],["Al-Jumu'a","Friday"],["Al-Munaafiqoon","The Hypocrites"],["At-Taghaabun","Mutual Disillusion"],["At-Talaaq","Divorce"],["At-Tahrim","The Prohibition"],["Al-Mulk","The Sovereignty"],["Al-Qalam","The Pen"],["Al-Haaqqa","The Reality"],["Al-Ma'aarij","The Ascending Stairways"],["Nooh","Noah"],["Al-Jinn","The Jinn"],["Al-Muzzammil","The Enshrouded One"],["Al-Muddaththir","The Cloaked One"],["Al-Qiyaama","The Resurrection"],["Al-Insaan","Man"],["Al-Mursalaat","The Emissaries"],["An-Naba","The Announcement"],["An-Naazi'aat","Those who drag forth"],["Abasa","He frowned"],["At-Takwir","The Overthrowing"],["Al-Infitaar","The Cleaving"],["Al-Mutaffifin","Defrauding"],["Al-Inshiqaaq","The Splitting Open"],["Al-Burooj","The Constellations"],["At-Taariq","The Morning Star"],["Al-A'laa","The Most High"],["Al-Ghaashiya","The Overwhelming"],["Al-Fajr","The Dawn"],["Al-Balad","The City"],["Ash-Shams","The Sun"],["Al-Lail","The Night"],["Ad-Dhuhaa","The Morning Hours"],["Ash-Sharh","The Consolation"],["At-Tin","The Fig"],["Al-Alaq","The Clot"],["Al-Qadr","The Power, Fate"],["Al-Bayyina","The Evidence"],["Az-Zalzala","The Earthquake"],["Al-Aadiyaat","The Chargers"],["Al-Qaari'a","The Calamity"],["At-Takaathur","Competition"],["Al-Asr","The Declining Day, Epoch"],["Al-Humaza","The Traducer"],["Al-Fil","The Elephant"],["Quraish","Quraysh"],["Al-Maa'un","Almsgiving"],["Al-Kawthar","Abundance"],["Al-Kaafiroon","The Disbelievers"],["An-Nasr","Divine Support"],["Al-Masad","The Palm Fibre"],["Al-Ikhlaas","Sincerity"],["Al-Falaq","The Dawn"],["An-Naas","Mankind"]],a.suraNamesRu=[[],["Аль-Фатиха","Открывающая Коран"],["Аль-Бакара","Корова"],["Аль ‘Имран","Семейство ‘Имрана"],["Ан-Ниса","Женщины"],["Аль-Маида","Трапеза"],["Аль-Ан‘ам","Скот"],["Аль-А‘раф","Ограды"],["Аль-Анфаль","Военная добыча"],["Ат-Тауба","Покаяние"],["Юнус","Иона"],["Худ","Худ"],["Юсуф","Иосиф"],["Ар-Ра‘д","Гром"],["Ибрахим","Авраам"],["Аль-Хиджр","Хиджр"],["Ан-Нахль","Пчёлы"],["Аль-Исра","Ночной перенос"],["Аль-Кяхф","Пещера"],["Марьям","Мария"],["Та, ха","Та, ха"],["Аль-Анбия","Пророки"],["Аль-Хаджж","Хадж"],["Аль-Му’минун","Верующие"],["Ан-Нур","Свет"],["Аль-Фуркан","Различение"],["Аш-Шу‘ара","Поэты"],["Ан-Намль","Муравьи"],["Аль-Касас","Рассказ"],["Аль-‘Анкабут","Паук"],["Ар-Рум","Ромеи"],["Лукман","Лукман"],["Ас-Саджда","Земной поклон"],["Аль-Ахзаб","Полчища"],["Саба’","Сава"],["Фатыр","Зиждитель"],["Йа, син","Йа, син"],["Ас-Саффат","Стоящие в ряд"],["Сад","Сад"],["Аз-Зумар","Толпы"],["Гафир","Прощающий"],["Фуссылят","Разъяснены"],["Аш-Шура","Совет"],["Аз-Зухруф","Украшения"],["Ад-Духан","Дым"],["Аль-Джасия","Коленопреклонённые"],["Аль-Ахкаф","Барханы"],["Мухаммад","Мухаммад"],["Аль-Фатх","Победа"],["Аль-Худжурат","Покои"],["Каф","Каф"],["Аз-Зарият","Рассеивающие"],["Ат-Тур","Гора"],["Ан-Наджм","Звезда"],["Аль-Камар","Луна"],["Ар-Рахман","Милостивый"],["Аль-Ваки‘а","Неизбежное"],["Аль-Хадид","Железо"],["Аль-Муджадиля","Препирающаяся"],["Аль-Хашр","Сбор"],["Аль-Мумтахана","Испытуемая"],["Ас-Сафф","Ряд"],["Аль-Джуму‘а","Собрание"],["Аль-Мунафикун","Лицемеры"],["Ат-Тагабун","Обделение"],["Ат-Таляк","Развод"],["Ат-Тахрим","Запрещение"],["Аль-Мульк","Власть"],["Аль-Калям","Перо"],["Аль-Хакка","Неминуемое"],["Аль-Ма‘аридж","Степени"],["Нух","Ной"],["Аль-Джинн","Джинны"],["Аль-Муззаммиль","Закутавшийся"],["Аль-Муддассир","Завернувшийся"],["Аль-Кияма","Воскресение"],["Аль-Инсан","Человек"],["Аль-Мурсалят","Посылаемые"],["Ан-Наба’","Весть"],["Ан-Нази‘ат","Вырывающие"],["‘Абаса","Нахмурился"],["Ат-Таквир","Сворачивание"],["Аль-Инфитар","Раскалывание"],["Аль-Мутаффифин","Обвешивающие"],["Аль-Иншикак","Разверзнется"],["Аль-Бурудж","Созвездия"],["Ат-Тарик","Ночной гость"],["Аль-А‘ля","Всевышний"],["Аль-Гашия","Покрывающее"],["Аль-Фаджр","Заря"],["Аль-Баляд","Город"],["Аш-Шамс","Солнце"],["Аль-Лейль","Ночь"],["Ад-Духа","Утро"],["Аль-Инширах","Раскрытие"],["Ат-Тин","Смоковница"],["Аль-‘Аляк","Сгусток крови"],["Аль-Кадр","Величие"],["Аль-Баййина","Ясный довод"],["Аз-Зальзаля","Сотрясение"],["Аль-‘Адият","Скачущие"],["Аль-Кари‘а","Поражающее"],["Ат-Такясур","Соперничество"],["Аль-‘Аср","Предвечернее время"],["Аль-Хумаза","Хулитель"],["Аль-Филь","Слон"],["Курайш","Курайшиты"],["Аль-Ма‘ун","Утварь"],["Аль-Каусар","Каусар"],["Аль-Кяфирун","Неверующие"],["Ан-Наср","Помощь"],["Аль-Масад","Пальмовые волокна"],["Аль-Ихляс","Очищение веры"],["Аль-Фаляк","Рассвет"],["Ан-Нас","Люди"]]}));
+/*! 
+ * Quran Meta library 2.5.1
+ *
+ * Released under the MIT license
+ */
+
+(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports):typeof define==='function'&&define.amd?define(['exports'],f):(g=typeof globalThis!=='undefined'?globalThis:g||self,f(g.quranMeta={}));})(this,(function(exports){'use strict';const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}const 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
+];function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}const 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
+];function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}const 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
+];function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];const 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
+];const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}const suraNames$1 = [
+  [],
+  ["Al-Faatiha", "The Opening"],
+  ["Al-Baqara", "The Cow"],
+  ["Aal-i-Imraan", "The Family of Imraan"],
+  ["An-Nisaa", "The Women"],
+  ["Al-Maaida", "The Table"],
+  ["Al-An'aam", "The Cattle"],
+  ["Al-A'raaf", "The Heights"],
+  ["Al-Anfaal", "The Spoils of War"],
+  ["At-Tawba", "The Repentance"],
+  ["Yunus", "Jonas"],
+  ["Hud", "Hud"],
+  ["Yusuf", "Joseph"],
+  ["Ar-Ra'd", "The Thunder"],
+  ["Ibrahim", "Abraham"],
+  ["Al-Hijr", "The Rock"],
+  ["An-Nahl", "The Bee"],
+  ["Al-Israa", "The Night Journey"],
+  ["Al-Kahf", "The Cave"],
+  ["Maryam", "Mary"],
+  ["Taa-Haa", "Taa-Haa"],
+  ["Al-Anbiyaa", "The Prophets"],
+  ["Al-Hajj", "The Pilgrimage"],
+  ["Al-Muminoon", "The Believers"],
+  ["An-Noor", "The Light"],
+  ["Al-Furqaan", "The Criterion"],
+  ["Ash-Shu'araa", "The Poets"],
+  ["An-Naml", "The Ant"],
+  ["Al-Qasas", "The Stories"],
+  ["Al-Ankaboot", "The Spider"],
+  ["Ar-Room", "The Romans"],
+  ["Luqman", "Luqman"],
+  ["As-Sajda", "The Prostration"],
+  ["Al-Ahzaab", "The Clans"],
+  ["Saba", "Sheba"],
+  ["Faatir", "The Originator"],
+  ["Yaseen", "Yaseen"],
+  ["As-Saaffaat", "Those drawn up in Ranks"],
+  ["Saad", "The letter Saad"],
+  ["Az-Zumar", "The Groups"],
+  ["Al-Ghaafir", "The Forgiver"],
+  ["Fussilat", "Explained in detail"],
+  ["Ash-Shura", "Consultation"],
+  ["Az-Zukhruf", "Ornaments of gold"],
+  ["Ad-Dukhaan", "The Smoke"],
+  ["Al-Jaathiya", "Crouching"],
+  ["Al-Ahqaf", "The Dunes"],
+  ["Muhammad", "Muhammad"],
+  ["Al-Fath", "The Victory"],
+  ["Al-Hujuraat", "The Inner Apartments"],
+  ["Qaaf", "The letter Qaaf"],
+  ["Adh-Dhaariyat", "The Winnowing Winds"],
+  ["At-Tur", "The Mount"],
+  ["An-Najm", "The Star"],
+  ["Al-Qamar", "The Moon"],
+  ["Ar-Rahmaan", "The Beneficent"],
+  ["Al-Waaqia", "The Inevitable"],
+  ["Al-Hadid", "The Iron"],
+  ["Al-Mujaadila", "The Pleading Woman"],
+  ["Al-Hashr", "The Exile"],
+  ["Al-Mumtahana", "She that is to be examined"],
+  ["As-Saff", "The Ranks"],
+  ["Al-Jumu'a", "Friday"],
+  ["Al-Munaafiqoon", "The Hypocrites"],
+  ["At-Taghaabun", "Mutual Disillusion"],
+  ["At-Talaaq", "Divorce"],
+  ["At-Tahrim", "The Prohibition"],
+  ["Al-Mulk", "The Sovereignty"],
+  ["Al-Qalam", "The Pen"],
+  ["Al-Haaqqa", "The Reality"],
+  ["Al-Ma'aarij", "The Ascending Stairways"],
+  ["Nooh", "Noah"],
+  ["Al-Jinn", "The Jinn"],
+  ["Al-Muzzammil", "The Enshrouded One"],
+  ["Al-Muddaththir", "The Cloaked One"],
+  ["Al-Qiyaama", "The Resurrection"],
+  ["Al-Insaan", "Man"],
+  ["Al-Mursalaat", "The Emissaries"],
+  ["An-Naba", "The Announcement"],
+  ["An-Naazi'aat", "Those who drag forth"],
+  ["Abasa", "He frowned"],
+  ["At-Takwir", "The Overthrowing"],
+  ["Al-Infitaar", "The Cleaving"],
+  ["Al-Mutaffifin", "Defrauding"],
+  ["Al-Inshiqaaq", "The Splitting Open"],
+  ["Al-Burooj", "The Constellations"],
+  ["At-Taariq", "The Morning Star"],
+  ["Al-A'laa", "The Most High"],
+  ["Al-Ghaashiya", "The Overwhelming"],
+  ["Al-Fajr", "The Dawn"],
+  ["Al-Balad", "The City"],
+  ["Ash-Shams", "The Sun"],
+  ["Al-Lail", "The Night"],
+  ["Ad-Dhuhaa", "The Morning Hours"],
+  ["Ash-Sharh", "The Consolation"],
+  ["At-Tin", "The Fig"],
+  ["Al-Alaq", "The Clot"],
+  ["Al-Qadr", "The Power, Fate"],
+  ["Al-Bayyina", "The Evidence"],
+  ["Az-Zalzala", "The Earthquake"],
+  ["Al-Aadiyaat", "The Chargers"],
+  ["Al-Qaari'a", "The Calamity"],
+  ["At-Takaathur", "Competition"],
+  ["Al-Asr", "The Declining Day, Epoch"],
+  ["Al-Humaza", "The Traducer"],
+  ["Al-Fil", "The Elephant"],
+  ["Quraish", "Quraysh"],
+  ["Al-Maa'un", "Almsgiving"],
+  ["Al-Kawthar", "Abundance"],
+  ["Al-Kaafiroon", "The Disbelievers"],
+  ["An-Nasr", "Divine Support"],
+  ["Al-Masad", "The Palm Fibre"],
+  ["Al-Ikhlaas", "Sincerity"],
+  ["Al-Falaq", "The Dawn"],
+  ["An-Naas", "Mankind"]
+];const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];exports.HizbQuarterList=HizbQuarterList;exports.JuzList=JuzList;exports.ManzilList=ManzilList;exports.PageList=PageList;exports.RukuList=RukuList;exports.SajdaList=SajdaList;exports.SuraList=SuraList;exports.ayaStringSplitter=ayaStringSplitter;exports.checkValidAyahId=checkValidAyahId;exports.checkValidSurah=checkValidSurah;exports.checkValidSurahAyah=checkValidSurahAyah;exports.findAyaidBySurah=findAyaidBySurah;exports.findJuz=findJuz;exports.findJuzAndShift=findJuzAndShift;exports.findJuzByAyaid=findJuzByAyaid;exports.findJuzHizb=findJuzHizb;exports.findJuzHizbByAyaid=findJuzHizbByAyaid;exports.findJuzMetaBySurah=findJuzMetaBySurah;exports.findPage=findPage;exports.findRangeAroundAyah=findRangeAroundAyah;exports.findSurahByAyaid=findSurahByAyaid;exports.getAyaCountinSura=getAyaCountinSura;exports.getSurahMeta=getSurahMeta;exports.isAyahJuzFirst=isAyahJuzFirst;exports.isAyahPageFirst=isAyahPageFirst;exports.meta=meta;exports.nextAyah=nextAyah;exports.pageMeta=pageMeta;exports.prevAyah=prevAyah;exports.suraNamesEn=suraNames$1;exports.suraNamesRu=suraNames;}));
\ No newline at end of file
diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css
index 6ec77ba..57b8e8a 100644
--- a/docs/assets/highlight.css
+++ b/docs/assets/highlight.css
@@ -5,7 +5,7 @@
     --dark-hl-1: #569CD6;
     --light-hl-2: #000000FF;
     --dark-hl-2: #D4D4D4;
-    --light-hl-3: #FF0000;
+    --light-hl-3: #E50000;
     --dark-hl-3: #9CDCFE;
     --light-hl-4: #0000FF;
     --dark-hl-4: #CE9178;
diff --git a/docs/assets/icons.js b/docs/assets/icons.js
new file mode 100644
index 0000000..e88e8ca
--- /dev/null
+++ b/docs/assets/icons.js
@@ -0,0 +1,18 @@
+(function() {
+    addIcons();
+    function addIcons() {
+        if (document.readyState === "loading") return document.addEventListener("DOMContentLoaded", addIcons);
+        const svg = document.body.appendChild(document.createElementNS("http://www.w3.org/2000/svg", "svg"));
+        svg.innerHTML = `"<g id="icon-1"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-2"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.33 16V7.24H10.77L13.446 14.74C13.43 14.54 13.41 14.296 13.386 14.008C13.37 13.712 13.354 13.404 13.338 13.084C13.33 12.756 13.326 12.448 13.326 12.16V7.24H14.37V16H12.93L10.266 8.5C10.282 8.692 10.298 8.936 10.314 9.232C10.33 9.52 10.342 9.828 10.35 10.156C10.366 10.476 10.374 10.784 10.374 11.08V16H9.33Z" fill="var(--color-text)"></path></g><g id="icon-8"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.45 16V7.24H14.49V8.224H10.518V10.936H14.07V11.908H10.518V15.016H14.49V16H9.45Z" fill="var(--color-text)"></path></g><g id="icon-16"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-32"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)"></path></g><g id="icon-64"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-128"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-256"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.51 16V15.016H11.298V8.224H9.51V7.24H14.19V8.224H12.402V15.016H14.19V16H9.51Z" fill="var(--color-text)"></path></g><g id="icon-512"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-1024"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-2048"><rect fill="var(--color-icon-background)" stroke="#FF4DB8" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4096"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-8192"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-16384"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-32768"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-65536"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-131072"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-262144"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-524288"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-1048576"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-2097152"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-4194304"><rect fill="var(--color-icon-background)" stroke="#FF4D82" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M10.354 17V8.24H13.066C13.586 8.24 14.042 8.348 14.434 8.564C14.826 8.772 15.13 9.064 15.346 9.44C15.562 9.816 15.67 10.256 15.67 10.76C15.67 11.352 15.514 11.86 15.202 12.284C14.898 12.708 14.482 13 13.954 13.16L15.79 17H14.518L12.838 13.28H11.434V17H10.354ZM11.434 12.308H13.066C13.514 12.308 13.874 12.168 14.146 11.888C14.418 11.6 14.554 11.224 14.554 10.76C14.554 10.288 14.418 9.912 14.146 9.632C13.874 9.352 13.514 9.212 13.066 9.212H11.434V12.308Z" fill="var(--color-text)"></path></g><g id="icon-8388608"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-text)" fill="var(--color-icon-background)"><polygon points="6,5 6,19 18,19, 18,9 15,5"></polygon><line x1="9" y1="9" x2="14" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-chevronDown"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></g><g id="icon-chevronSmall"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-text)"></path></g><g id="icon-checkbox"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></g><g id="icon-search"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></g><g id="icon-anchor"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g>"`;
+        svg.style.display = "none";
+        if (location.protocol === "file:") updateUseElements();
+    }
+
+    function updateUseElements() {
+        document.querySelectorAll("use").forEach(el => {
+            if (el.getAttribute("href").includes("#icon-")) {
+                el.setAttribute("href", el.getAttribute("href").replace(/.*#/, "#"));
+            }
+        });
+    }
+})()
\ No newline at end of file
diff --git a/docs/assets/icons.svg b/docs/assets/icons.svg
new file mode 100644
index 0000000..e371b8b
--- /dev/null
+++ b/docs/assets/icons.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg"><g id="icon-1"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-2"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-module)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-namespace)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.33 16V7.24H10.77L13.446 14.74C13.43 14.54 13.41 14.296 13.386 14.008C13.37 13.712 13.354 13.404 13.338 13.084C13.33 12.756 13.326 12.448 13.326 12.16V7.24H14.37V16H12.93L10.266 8.5C10.282 8.692 10.298 8.936 10.314 9.232C10.33 9.52 10.342 9.828 10.35 10.156C10.366 10.476 10.374 10.784 10.374 11.08V16H9.33Z" fill="var(--color-text)"></path></g><g id="icon-8"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-enum)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.45 16V7.24H14.49V8.224H10.518V10.936H14.07V11.908H10.518V15.016H14.49V16H9.45Z" fill="var(--color-text)"></path></g><g id="icon-16"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-32"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)"></path></g><g id="icon-64"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-128"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-class)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-256"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-interface)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.51 16V15.016H11.298V8.224H9.51V7.24H14.19V8.224H12.402V15.016H14.19V16H9.51Z" fill="var(--color-text)"></path></g><g id="icon-512"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-1024"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-2048"><rect fill="var(--color-icon-background)" stroke="#FF4DB8" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.162 16V7.24H10.578L11.514 10.072C11.602 10.328 11.674 10.584 11.73 10.84C11.794 11.088 11.842 11.28 11.874 11.416C11.906 11.28 11.954 11.088 12.018 10.84C12.082 10.584 12.154 10.324 12.234 10.06L13.122 7.24H14.538V16H13.482V12.82C13.482 12.468 13.49 12.068 13.506 11.62C13.53 11.172 13.558 10.716 13.59 10.252C13.622 9.78 13.654 9.332 13.686 8.908C13.726 8.476 13.762 8.1 13.794 7.78L12.366 12.16H11.334L9.894 7.78C9.934 8.092 9.97 8.456 10.002 8.872C10.042 9.28 10.078 9.716 10.11 10.18C10.142 10.636 10.166 11.092 10.182 11.548C10.206 12.004 10.218 12.428 10.218 12.82V16H9.162Z" fill="var(--color-text)"></path></g><g id="icon-4096"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)"></path></g><g id="icon-8192"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-16384"><rect fill="var(--color-icon-background)" stroke="#4D7FFF" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M11.898 16.1201C11.098 16.1201 10.466 15.8961 10.002 15.4481C9.53803 15.0001 9.30603 14.3841 9.30603 13.6001V9.64012C9.30603 8.85612 9.53803 8.24012 10.002 7.79212C10.466 7.34412 11.098 7.12012 11.898 7.12012C12.682 7.12012 13.306 7.34812 13.77 7.80412C14.234 8.25212 14.466 8.86412 14.466 9.64012H13.386C13.386 9.14412 13.254 8.76412 12.99 8.50012C12.734 8.22812 12.37 8.09212 11.898 8.09212C11.426 8.09212 11.054 8.22412 10.782 8.48812C10.518 8.75212 10.386 9.13212 10.386 9.62812V13.6001C10.386 14.0961 10.518 14.4801 10.782 14.7521C11.054 15.0161 11.426 15.1481 11.898 15.1481C12.37 15.1481 12.734 15.0161 12.99 14.7521C13.254 14.4801 13.386 14.0961 13.386 13.6001H14.466C14.466 14.3761 14.234 14.9921 13.77 15.4481C13.306 15.8961 12.682 16.1201 11.898 16.1201Z" fill="var(--color-text)"></path></g><g id="icon-32768"><rect fill="var(--color-icon-background)" stroke="#FF984D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M9.354 16V7.24H12.174C12.99 7.24 13.638 7.476 14.118 7.948C14.606 8.412 14.85 9.036 14.85 9.82C14.85 10.604 14.606 11.232 14.118 11.704C13.638 12.168 12.99 12.4 12.174 12.4H10.434V16H9.354ZM10.434 11.428H12.174C12.646 11.428 13.022 11.284 13.302 10.996C13.59 10.7 13.734 10.308 13.734 9.82C13.734 9.324 13.59 8.932 13.302 8.644C13.022 8.356 12.646 8.212 12.174 8.212H10.434V11.428Z" fill="var(--color-text)"></path></g><g id="icon-65536"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-131072"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-262144"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-524288"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-1048576"><rect fill="var(--color-icon-background)" stroke="#FF4D4D" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M8.85 16L11.13 7.24H12.582L14.85 16H13.758L13.182 13.672H10.53L9.954 16H8.85ZM10.746 12.76H12.954L12.282 10.06C12.154 9.548 12.054 9.12 11.982 8.776C11.91 8.432 11.866 8.208 11.85 8.104C11.834 8.208 11.79 8.432 11.718 8.776C11.646 9.12 11.546 9.544 11.418 10.048L10.746 12.76Z" fill="var(--color-text)"></path></g><g id="icon-2097152"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-type-alias)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)"></path></g><g id="icon-4194304"><rect fill="var(--color-icon-background)" stroke="#FF4D82" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="12"></rect><path d="M10.354 17V8.24H13.066C13.586 8.24 14.042 8.348 14.434 8.564C14.826 8.772 15.13 9.064 15.346 9.44C15.562 9.816 15.67 10.256 15.67 10.76C15.67 11.352 15.514 11.86 15.202 12.284C14.898 12.708 14.482 13 13.954 13.16L15.79 17H14.518L12.838 13.28H11.434V17H10.354ZM11.434 12.308H13.066C13.514 12.308 13.874 12.168 14.146 11.888C14.418 11.6 14.554 11.224 14.554 10.76C14.554 10.288 14.418 9.912 14.146 9.632C13.874 9.352 13.514 9.212 13.066 9.212H11.434V12.308Z" fill="var(--color-text)"></path></g><g id="icon-8388608"><rect fill="var(--color-icon-background)" stroke="var(--color-document)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6"></rect><g stroke="var(--color-text)" fill="var(--color-icon-background)"><polygon points="6,5 6,19 18,19, 18,9 15,5"></polygon><line x1="9" y1="9" x2="14" y2="9"></line><line x1="9" y1="12" x2="15" y2="12"></line><line x1="9" y1="15" x2="15" y2="15"></line></g></g><g id="icon-chevronDown"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></g><g id="icon-chevronSmall"><path d="M1.5 5.50969L8 11.6609L14.5 5.50969L12.5466 3.66086L8 7.96494L3.45341 3.66086L1.5 5.50969Z" fill="var(--color-text)"></path></g><g id="icon-checkbox"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></g><g id="icon-menu"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></g><g id="icon-search"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></g><g id="icon-anchor"><g stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></g></g></svg>
\ No newline at end of file
diff --git a/docs/assets/main.js b/docs/assets/main.js
index abd0485..21a5d74 100644
--- a/docs/assets/main.js
+++ b/docs/assets/main.js
@@ -1,54 +1,60 @@
 "use strict";
-"use strict";(()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var u=r.charAt(o),l=o-a;if(u.match(t.tokenizer.separator)||o==i){if(l>0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
-`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var u=0;u<a.length;u++)s.push(a[u]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,u=0,l=0,h=0;l<s&&h<o;)a=r[l],u=i[h],a<u?l+=2:a>u?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,u="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,h="^("+s+")?"+i,m=new RegExp(a),v=new RegExp(l),b=new RegExp(u),y=new RegExp(h),E=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,p=/^(.+?)eed$/,w=/^(.+?)(ed|ing)$/,S=/.$/,I=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),z=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,q=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,$=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,V=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,W=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,U=/ll$/,G=new RegExp("^"+s+i+"[^aeiouwxy]$"),N=function(c){var g,C,T,d,x,O,D;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),d=E,x=f,d.test(c)?c=c.replace(d,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),d=p,x=w,d.test(c)){var L=d.exec(c);d=m,d.test(L[1])&&(d=S,c=c.replace(d,""))}else if(x.test(c)){var L=x.exec(c);g=L[1],x=y,x.test(g)&&(c=g,x=I,O=_,D=z,x.test(c)?c=c+"e":O.test(c)?(d=S,c=c.replace(d,"")):D.test(c)&&(c=c+"e"))}if(d=A,d.test(c)){var L=d.exec(c);g=L[1],c=g+"i"}if(d=q,d.test(c)){var L=d.exec(c);g=L[1],C=L[2],d=m,d.test(g)&&(c=g+e[C])}if(d=$,d.test(c)){var L=d.exec(c);g=L[1],C=L[2],d=m,d.test(g)&&(c=g+n[C])}if(d=V,x=W,d.test(c)){var L=d.exec(c);g=L[1],d=v,d.test(g)&&(c=g)}else if(x.test(c)){var L=x.exec(c);g=L[1]+L[2],x=v,x.test(g)&&(c=g)}if(d=P,d.test(c)){var L=d.exec(c);g=L[1],d=v,x=b,O=G,(d.test(g)||x.test(g)&&!O.test(g))&&(c=g)}return d=U,x=v,d.test(c)&&x.test(c)&&(d=S,c=c.replace(d,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(M){return M.update(N)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var u=new t.TokenSet;u.final=a,n.edges[o]=u,n=u}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),u=a.length,l=0;l<o;l++)for(var h=s[l],m=0;m<u;m++){var v=a[m];if(v==h||h=="*"){var b=r.node.edges[v],y=r.qNode.edges[h],E=b.final&&y.final,f=void 0;v in r.output.edges?(f=r.output.edges[v],f.final=f.final||E):(f=new t.TokenSet,f.final=E,r.output.edges[v]=f),i.push({qNode:y,output:f,node:b})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u<this.fields.length;u++)i[this.fields[u]]=new t.Vector;e.call(n,n);for(var u=0;u<n.clauses.length;u++){var l=n.clauses[u],h=null,m=t.Set.empty;l.usePipeline?h=this.pipeline.runString(l.term,{fields:l.fields}):h=[l.term];for(var v=0;v<h.length;v++){var b=h[v];l.term=b;var y=t.TokenSet.fromClause(l),E=this.tokenSet.intersect(y).toArray();if(E.length===0&&l.presence===t.Query.presence.REQUIRED){for(var f=0;f<l.fields.length;f++){var p=l.fields[f];o[p]=t.Set.empty}break}for(var w=0;w<E.length;w++)for(var S=E[w],I=this.invertedIndex[S],_=I._index,f=0;f<l.fields.length;f++){var p=l.fields[f],z=I[p],A=Object.keys(z),q=S+"/"+p,$=new t.Set(A);if(l.presence==t.Query.presence.REQUIRED&&(m=m.union($),o[p]===void 0&&(o[p]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[p]===void 0&&(a[p]=t.Set.empty),a[p]=a[p].union($);continue}if(i[p].upsert(_,l.boost,function(ke,Ie){return ke+Ie}),!s[q]){for(var V=0;V<A.length;V++){var W=A[V],P=new t.FieldRef(W,p),U=z[W],G;(G=r[P])===void 0?r[P]=new t.MatchData(S,p,U):G.add(S,p,U)}s[q]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var f=0;f<l.fields.length;f++){var p=l.fields[f];o[p]=o[p].intersect(m)}}for(var N=t.Set.complete,M=t.Set.empty,u=0;u<this.fields.length;u++){var p=this.fields[u];o[p]&&(N=N.intersect(o[p])),a[p]&&(M=M.union(a[p]))}var c=Object.keys(r),g=[],C=Object.create(null);if(n.isNegated()){c=Object.keys(this.fieldVectors);for(var u=0;u<c.length;u++){var P=c[u],T=t.FieldRef.fromString(P);r[P]=new t.MatchData}}for(var u=0;u<c.length;u++){var T=t.FieldRef.fromString(c[u]),d=T.docRef;if(!!N.contains(d)&&!M.contains(d)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),D;if((D=C[d])!==void 0)D.score+=O,D.matchData.combine(r[T]);else{var L={ref:d,score:O,matchData:r[T]};C[d]=L,g.push(L)}}}return g.sort(function(we,Te){return Te.score-we.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,u=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var h=i[l],m=h[0],v=h[1];r[m]=new t.Vector(v)}for(var l=0;l<o.length;l++){var h=o[l],b=h[0],y=h[1];a.insert(b),s[b]=y}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=u,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,u=a?a(e):e[o],l=this.tokenizer(u,{fields:[o]}),h=this.pipeline.run(l),m=new t.FieldRef(r,o),v=Object.create(null);this.fieldTermFrequencies[m]=v,this.fieldLengths[m]=0,this.fieldLengths[m]+=h.length;for(var b=0;b<h.length;b++){var y=h[b];if(v[y]==null&&(v[y]=0),v[y]+=1,this.invertedIndex[y]==null){var E=Object.create(null);E._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)E[i[f]]=Object.create(null);this.invertedIndex[y]=E}this.invertedIndex[y][o][r]==null&&(this.invertedIndex[y][o][r]=Object.create(null));for(var p=0;p<this.metadataWhitelist.length;p++){var w=this.metadataWhitelist[p],S=y.metadata[w];this.invertedIndex[y][o][r][w]==null&&(this.invertedIndex[y][o][r][w]=[]),this.invertedIndex[y][o][r][w].push(S)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var u=Object.keys(this._fields),s=0;s<u.length;s++){var l=u[s];r[l]=r[l]/i[l]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,u=this.fieldLengths[o],l=new t.Vector,h=this.fieldTermFrequencies[o],m=Object.keys(h),v=m.length,b=this._fields[a].boost||1,y=this._documents[o.docRef].boost||1,E=0;E<v;E++){var f=m[E],p=h[f],w=this.invertedIndex[f]._index,S,I,_;i[f]===void 0?(S=t.idf(this.invertedIndex[f],this.documentCount),i[f]=S):S=i[f],I=S*((this._k1+1)*p)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+p),I*=b,I*=y,_=Math.round(I*1e3)/1e3,l.insert(w,_)}e[o]=l}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],u=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var l=0;l<u.length;l++){var h=u[l];this.metadata[i][a][h]==null?this.metadata[i][a][h]=e.metadata[i][a][h]:this.metadata[i][a][h]=this.metadata[i][a][h].concat(e.metadata[i][a][h])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function j(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r}),r.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i<s;i++)if(r[i]===n){r.splice(i,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return!0;let n=this.listeners[e.type].slice();for(let r=0,i=n.length;r<i;r++)n[r].call(this,e);return!e.defaultPrevented}};var ne=(t,e=100)=>{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends k{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;i<s;i++){n=this.anchors[i];let o=n.anchor.getBoundingClientRect();n.position=o.top+document.body.scrollTop}this.anchors.sort((i,s)=>i.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o<s&&i[o+1].position<r;)o+=1;this.index!=o&&(this.index>-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>t(r),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{Ae(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?fe(e,-1):s.key==="ArrowDown"?fe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function Ae(t,e,n,r){if(He(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;o<s.length;o++){let a=s[o],u=r.data.rows[Number(a.ref)],l=1;u.name.toLowerCase().startsWith(i.toLowerCase())&&(l*=1+1/(1+Math.abs(u.name.length-i.length))),a.score*=l}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let u=r.data.rows[Number(s[o].ref)],l=pe(u.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(l+=` (score: ${s[o].score.toFixed(2)})`),u.parent&&(l=`<span class="parent">${pe(u.parent,i)}.</span>${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function fe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function pe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`<b>${ie(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",B="mouseup",Z={x:0,y:0},ge=!1,se=!1,je=!1,H=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",B="touchend");document.addEventListener(F,t=>{se=!0,H=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!se&&!H){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);H=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends k{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){H||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!H&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends k{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
-`}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends k{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();j(X,".menu-highlight");j(K,"a[data-toggle]");j(te,".tsd-index-accordion");j(ee,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("theme");Se&&be(Se);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})();
-/*!
- * lunr.Builder
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Index
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Pipeline
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Set
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.TokenSet
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.Vector
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.stemmer
- * Copyright (C) 2020 Oliver Nightingale
- * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
- */
-/*!
- * lunr.stopWordFilter
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.tokenizer
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.trimmer
- * Copyright (C) 2020 Oliver Nightingale
- */
-/*!
- * lunr.utils
- * Copyright (C) 2020 Oliver Nightingale
- */
-/**
- * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
- * Copyright (C) 2020 Oliver Nightingale
- * @license MIT
- */
+window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings."};
+"use strict";(()=>{var Pe=Object.create;var ie=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var _e=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,Me=Object.prototype.hasOwnProperty;var Fe=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _e(e))!Me.call(t,i)&&i!==n&&ie(t,i,{get:()=>e[i],enumerable:!(r=Oe(e,i))||r.enumerable});return t};var Ae=(t,e,n)=>(n=t!=null?Pe(Re(t)):{},De(e||!t||!t.__esModule?ie(n,"default",{value:t,enumerable:!0}):n,t));var ue=Fe((ae,le)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(m){return new t.Token(t.utils.asString(m).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var l=r.charAt(o),u=o-a;if(l.match(t.tokenizer.separator)||o==i){if(u>0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
+`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,l=0,u=0,d=0;u<s&&d<o;)a=r[u],l=i[d],a<l?u+=2:a>l?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",u="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,m=new RegExp(a),p=new RegExp(u),b=new RegExp(l),g=new RegExp(d),L=/^(.+?)(ss|i)es$/,f=/^(.+?)([^s])s$/,y=/^(.+?)eed$/,S=/^(.+?)(ed|ing)$/,w=/.$/,k=/(at|bl|iz)$/,_=new RegExp("([^aeiouylsz])\\1$"),B=new RegExp("^"+s+i+"[^aeiouwxy]$"),A=/^(.+?[^aeiou])y$/,j=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,q=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,V=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,$=/^(.+?)(s|t)(ion)$/,C=/^(.+?)e$/,z=/ll$/,W=new RegExp("^"+s+i+"[^aeiouwxy]$"),H=function(c){var v,P,T,h,x,O,M;if(c.length<3)return c;if(T=c.substr(0,1),T=="y"&&(c=T.toUpperCase()+c.substr(1)),h=L,x=f,h.test(c)?c=c.replace(h,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),h=y,x=S,h.test(c)){var E=h.exec(c);h=m,h.test(E[1])&&(h=w,c=c.replace(h,""))}else if(x.test(c)){var E=x.exec(c);v=E[1],x=g,x.test(v)&&(c=v,x=k,O=_,M=B,x.test(c)?c=c+"e":O.test(c)?(h=w,c=c.replace(h,"")):M.test(c)&&(c=c+"e"))}if(h=A,h.test(c)){var E=h.exec(c);v=E[1],c=v+"i"}if(h=j,h.test(c)){var E=h.exec(c);v=E[1],P=E[2],h=m,h.test(v)&&(c=v+e[P])}if(h=q,h.test(c)){var E=h.exec(c);v=E[1],P=E[2],h=m,h.test(v)&&(c=v+n[P])}if(h=V,x=$,h.test(c)){var E=h.exec(c);v=E[1],h=p,h.test(v)&&(c=v)}else if(x.test(c)){var E=x.exec(c);v=E[1]+E[2],x=p,x.test(v)&&(c=v)}if(h=C,h.test(c)){var E=h.exec(c);v=E[1],h=p,x=b,O=W,(h.test(v)||x.test(v)&&!O.test(v))&&(c=v)}return h=z,x=p,h.test(c)&&x.test(c)&&(h=w,c=c.replace(h,"")),T=="y"&&(c=T.toLowerCase()+c.substr(1)),c};return function(R){return R.update(H)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),m=s.str.charAt(1),p;m in s.node.edges?p=s.node.edges[m]:(p=new t.TokenSet,s.node.edges[m]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var l=new t.TokenSet;l.final=a,n.edges[o]=l,n=l}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),l=a.length,u=0;u<o;u++)for(var d=s[u],m=0;m<l;m++){var p=a[m];if(p==d||d=="*"){var b=r.node.edges[p],g=r.qNode.edges[d],L=b.final&&g.final,f=void 0;p in r.output.edges?(f=r.output.edges[p],f.final=f.final||L):(f=new t.TokenSet,f.final=L,r.output.edges[p]=f),i.push({qNode:g,output:f,node:b})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(n,n);for(var l=0;l<n.clauses.length;l++){var u=n.clauses[l],d=null,m=t.Set.empty;u.usePipeline?d=this.pipeline.runString(u.term,{fields:u.fields}):d=[u.term];for(var p=0;p<d.length;p++){var b=d[p];u.term=b;var g=t.TokenSet.fromClause(u),L=this.tokenSet.intersect(g).toArray();if(L.length===0&&u.presence===t.Query.presence.REQUIRED){for(var f=0;f<u.fields.length;f++){var y=u.fields[f];o[y]=t.Set.empty}break}for(var S=0;S<L.length;S++)for(var w=L[S],k=this.invertedIndex[w],_=k._index,f=0;f<u.fields.length;f++){var y=u.fields[f],B=k[y],A=Object.keys(B),j=w+"/"+y,q=new t.Set(A);if(u.presence==t.Query.presence.REQUIRED&&(m=m.union(q),o[y]===void 0&&(o[y]=t.Set.complete)),u.presence==t.Query.presence.PROHIBITED){a[y]===void 0&&(a[y]=t.Set.empty),a[y]=a[y].union(q);continue}if(i[y].upsert(_,u.boost,function(Ie,Ce){return Ie+Ce}),!s[j]){for(var V=0;V<A.length;V++){var $=A[V],C=new t.FieldRef($,y),z=B[$],W;(W=r[C])===void 0?r[C]=new t.MatchData(w,y,z):W.add(w,y,z)}s[j]=!0}}}if(u.presence===t.Query.presence.REQUIRED)for(var f=0;f<u.fields.length;f++){var y=u.fields[f];o[y]=o[y].intersect(m)}}for(var H=t.Set.complete,R=t.Set.empty,l=0;l<this.fields.length;l++){var y=this.fields[l];o[y]&&(H=H.intersect(o[y])),a[y]&&(R=R.union(a[y]))}var c=Object.keys(r),v=[],P=Object.create(null);if(n.isNegated()){c=Object.keys(this.fieldVectors);for(var l=0;l<c.length;l++){var C=c[l],T=t.FieldRef.fromString(C);r[C]=new t.MatchData}}for(var l=0;l<c.length;l++){var T=t.FieldRef.fromString(c[l]),h=T.docRef;if(H.contains(h)&&!R.contains(h)){var x=this.fieldVectors[T],O=i[T.fieldName].similarity(x),M;if((M=P[h])!==void 0)M.score+=O,M.matchData.combine(r[T]);else{var E={ref:h,score:O,matchData:r[T]};P[h]=E,v.push(E)}}}return v.sort(function(ke,Qe){return Qe.score-ke.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<i.length;u++){var d=i[u],m=d[0],p=d[1];r[m]=new t.Vector(p)}for(var u=0;u<o.length;u++){var d=o[u],b=d[0],g=d[1];a.insert(b),s[b]=g}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=l,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],u=this.tokenizer(l,{fields:[o]}),d=this.pipeline.run(u),m=new t.FieldRef(r,o),p=Object.create(null);this.fieldTermFrequencies[m]=p,this.fieldLengths[m]=0,this.fieldLengths[m]+=d.length;for(var b=0;b<d.length;b++){var g=d[b];if(p[g]==null&&(p[g]=0),p[g]+=1,this.invertedIndex[g]==null){var L=Object.create(null);L._index=this.termIndex,this.termIndex+=1;for(var f=0;f<i.length;f++)L[i[f]]=Object.create(null);this.invertedIndex[g]=L}this.invertedIndex[g][o][r]==null&&(this.invertedIndex[g][o][r]=Object.create(null));for(var y=0;y<this.metadataWhitelist.length;y++){var S=this.metadataWhitelist[y],w=g.metadata[S];this.invertedIndex[g][o][r][S]==null&&(this.invertedIndex[g][o][r][S]=[]),this.invertedIndex[g][o][r][S].push(w)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var u=l[s];r[u]=r[u]/i[u]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,l=this.fieldLengths[o],u=new t.Vector,d=this.fieldTermFrequencies[o],m=Object.keys(d),p=m.length,b=this._fields[a].boost||1,g=this._documents[o.docRef].boost||1,L=0;L<p;L++){var f=m[L],y=d[f],S=this.invertedIndex[f]._index,w,k,_;i[f]===void 0?(w=t.idf(this.invertedIndex[f],this.documentCount),i[f]=w):w=i[f],k=w*((this._k1+1)*y)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+y),k*=b,k*=g,_=Math.round(k*1e3)/1e3,u.insert(S,_)}e[o]=u}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var u=0;u<l.length;u++){var d=l[u];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ae=="object"?le.exports=n():e.lunr=n()}(this,function(){return t})})()});var se=[];function G(t,e){se.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){se.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!Ve(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function Ve(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var oe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var pe=Ae(ue());async function ce(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=pe.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function fe(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{ce(e,t)}),ce(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");i.addEventListener("mouseup",()=>{te(t)}),r.addEventListener("focus",()=>t.classList.add("has-focus")),He(t,i,r,e)}function He(t,e,n,r){n.addEventListener("input",oe(()=>{Ne(t,e,n,r)},200)),n.addEventListener("keydown",i=>{i.key=="Enter"?Be(e,t):i.key=="ArrowUp"?(de(e,n,-1),i.preventDefault()):i.key==="ArrowDown"&&(de(e,n,1),i.preventDefault())}),document.body.addEventListener("keypress",i=>{i.altKey||i.ctrlKey||i.metaKey||!n.matches(":focus")&&i.key==="/"&&(i.preventDefault(),n.focus())}),document.body.addEventListener("keyup",i=>{t.classList.contains("has-focus")&&(i.key==="Escape"||!e.matches(":focus-within")&&!n.matches(":focus"))&&(n.blur(),te(t))})}function te(t){t.classList.remove("has-focus")}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;o<s.length;o++){let a=s[o],l=r.data.rows[Number(a.ref)],u=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(u*=1+1/(1+Math.abs(l.name.length-i.length))),a.score*=u}if(s.length===0){let o=document.createElement("li");o.classList.add("no-results");let a=document.createElement("span");a.textContent="No results found",o.appendChild(a),e.appendChild(o)}s.sort((o,a)=>a.score-o.score);for(let o=0,a=Math.min(10,s.length);o<a;o++){let l=r.data.rows[Number(s[o].ref)],u=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${l.kind}"></use></svg>`,d=he(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=`<span class="parent">
+                ${he(l.parent,i)}.</span>${d}`);let m=document.createElement("li");m.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,m.append(p),p.addEventListener("focus",()=>{e.querySelector(".current")?.classList.remove("current"),m.classList.add("current")}),e.appendChild(m)}}function de(t,e,n){let r=t.querySelector(".current");if(!r)r=t.querySelector(n==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let i=r;if(n===1)do i=i.nextElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);else do i=i.previousElementSibling??void 0;while(i instanceof HTMLElement&&i.offsetParent==null);i?(r.classList.remove("current"),i.classList.add("current")):n===-1&&(r.classList.remove("current"),e.focus())}}function Be(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),te(e)}}function he(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ee(t.substring(s,o)),`<b>${ee(t.substring(o,o+r.length))}</b>`),s=o+r.length,o=n.indexOf(r,s);return i.push(ee(t.substring(s))),i.join("")}var je={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function ee(t){return t.replace(/[&<>"'"]/g,e=>je[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",ye="mousemove",N="mouseup",J={x:0,y:0},me=!1,ne=!1,qe=!1,D=!1,ve=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(ve?"is-mobile":"not-mobile");ve&&"ontouchstart"in document.documentElement&&(qe=!0,F="touchstart",ye="touchmove",N="touchend");document.addEventListener(F,t=>{ne=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(ye,t=>{if(ne&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(N,()=>{ne=!1});document.addEventListener("click",t=>{me&&(t.preventDefault(),t.stopImmediatePropagation(),me=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(N,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(N,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var re;try{re=localStorage}catch{re={getItem(){return null},setItem(){}}}var Q=re;var ge=document.head.appendChild(document.createElement("style"));ge.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ge.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
+`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function Ee(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,xe(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),xe(t.value)})}function xe(t){document.documentElement.dataset.theme=t}var K;function we(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Le),Le())}async function Le(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();K=t.dataset.base,K.endsWith("/")||(K+="/"),t.innerHTML="";for(let s of i)Se(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Se(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',be(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)Se(u,l,i)}else be(t,r,t.class)}function be(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=K+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&r.classList.add("current"),t.kind&&(r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon"><use href="#icon-${t.kind}"></use></svg>`),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Te=document.getElementById("tsd-theme");Te&&Ee(Te);var $e=new U;Object.defineProperty(window,"app",{value:$e});fe();we();})();
+/*! Bundled license information:
+
+lunr/lunr.js:
+  (**
+   * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+   * Copyright (C) 2020 Oliver Nightingale
+   * @license MIT
+   *)
+  (*!
+   * lunr.utils
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Set
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.tokenizer
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Pipeline
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Vector
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.stemmer
+   * Copyright (C) 2020 Oliver Nightingale
+   * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+   *)
+  (*!
+   * lunr.stopWordFilter
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.trimmer
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.TokenSet
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Index
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+  (*!
+   * lunr.Builder
+   * Copyright (C) 2020 Oliver Nightingale
+   *)
+*/
diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js
new file mode 100644
index 0000000..40c73a9
--- /dev/null
+++ b/docs/assets/navigation.js
@@ -0,0 +1 @@
+window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAACo2WXW/TMBSG/4uvy8o2BqJ3HWKCaqtYg7iZdnHWuIlp4kSOPS1B/HfkkC9/+/a853ni2I6dpz+I4zeONmjbQv49RStUA8/RBvG2xs36f/Ui52WBVuhMaIo2V+8/f7q8ufq7Uth9ZWP3VYjdiU4Hd6KLoL6R7sVCynIE/YA5WGhZDtE/IMM6KmsxnO2xYz3EPwoG1CaYgpAhgd+pQffFKPJnWxsvPgVBg2CQG7QsRpFyM1lpGUQbEpyVmHKnaMijfLaVmIIYwx5KczqHeoiXu/xRAOOY3ZNm8UKvwAi8FLhZay2q8Vr7HFySIfLAD0A7Urj4OfUoSmUmZ7g0JvJa/55czx0zD34QZ+HCx8yD9xvfxU+hTyCYmx8yD94MO6X5Sm2GRRwjOQiv5CA8Emgh4YzQLKkLwjlms+ok6JGTijZro0kVfvywEB5zfDz/goKk+qU0+/SeKJ12BtlslhPJJ1OPJafQPKQU6YlQ+RokvW2dQ9R7AjrlWlUtxvVqg7c0TXJy4h7J2BKW3bb9yD2uoSOsUm99w2Pe/i5JeEyLrrBSHvqB1VO7Akr1J0MVmT8bBn4AmuEtq0S/aZxD0toC0n7cgXlb9nh0GebbFr5UgnJCJWPzGU1+oeVWVlyOy1nRkEbOw050d4Q11s2vdgRVcq0CrqnFI6P4jbsWcsw8eG38es74mL279AkYfnU9f8wM/PkfChQ/T14MAAA="
\ No newline at end of file
diff --git a/docs/assets/search.js b/docs/assets/search.js
index 6f4a3ca..ae22699 100644
--- a/docs/assets/search.js
+++ b/docs/assets/search.js
@@ -1 +1 @@
-window.searchData = JSON.parse("{\"kinds\":{\"32\":\"Variable\",\"64\":\"Function\",\"1024\":\"Property\",\"65536\":\"Type literal\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":64,\"name\":\"findSurahByAyaid\",\"url\":\"functions/findSurahByAyaid.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzByAyaid\",\"url\":\"functions/findJuzByAyaid.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzHizbByAyaid\",\"url\":\"functions/findJuzHizbByAyaid.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuz\",\"url\":\"functions/findJuz.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzHizb\",\"url\":\"functions/findJuzHizb.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isAyahJuzFirst\",\"url\":\"functions/isAyahJuzFirst.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isAyahPageFirst\",\"url\":\"functions/isAyahPageFirst.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findJuzAndShift\",\"url\":\"functions/findJuzAndShift.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift\"},{\"kind\":1024,\"name\":\"juz\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type.juz\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift.__type\"},{\"kind\":1024,\"name\":\"leftAyahId\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type.leftAyahId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift.__type\"},{\"kind\":1024,\"name\":\"ayahsBetweenJuzSurah\",\"url\":\"functions/findJuzAndShift.html#findJuzAndShift.__type.ayahsBetweenJuzSurah\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"findJuzAndShift.findJuzAndShift.__type\"},{\"kind\":64,\"name\":\"findJuzMetaBySurah\",\"url\":\"functions/findJuzMetaBySurah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getSurahMeta\",\"url\":\"functions/getSurahMeta.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findPage\",\"url\":\"functions/findPage.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findAyaidBySurah\",\"url\":\"functions/findAyaidBySurah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getAyaCountinSura\",\"url\":\"functions/getAyaCountinSura.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"nextAyah\",\"url\":\"functions/nextAyah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"prevAyah\",\"url\":\"functions/prevAyah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"pageMeta\",\"url\":\"functions/pageMeta-1.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"findRangeAroundAyah\",\"url\":\"functions/findRangeAroundAyah.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":32,\"name\":\"JuzList\",\"url\":\"variables/JuzList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"ManzilList\",\"url\":\"variables/ManzilList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SajdaList\",\"url\":\"variables/SajdaList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":4194304,\"name\":\"AyahId\",\"url\":\"types/AyahId.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"AyahNo\",\"url\":\"types/AyahNo.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Page\",\"url\":\"types/Page.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Juz\",\"url\":\"types/Juz.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"SurahAyah\",\"url\":\"types/SurahAyah.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"PageMeta\",\"url\":\"types/PageMeta.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/PageMeta.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"PageMeta\"},{\"kind\":1024,\"name\":\"pageNum\",\"url\":\"types/PageMeta.html#__type.pageNum\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PageMeta.__type\"},{\"kind\":1024,\"name\":\"first\",\"url\":\"types/PageMeta.html#__type.first\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PageMeta.__type\"},{\"kind\":1024,\"name\":\"last\",\"url\":\"types/PageMeta.html#__type.last\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PageMeta.__type\"},{\"kind\":4194304,\"name\":\"JuzMeta\",\"url\":\"types/JuzMeta.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/JuzMeta.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"JuzMeta\"},{\"kind\":1024,\"name\":\"leftjuz\",\"url\":\"types/JuzMeta.html#__type.leftjuz\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"ayahsBetweenJuzSurah\",\"url\":\"types/JuzMeta.html#__type.ayahsBetweenJuzSurah\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"rightJuz\",\"url\":\"types/JuzMeta.html#__type.rightJuz\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"leftAyahId\",\"url\":\"types/JuzMeta.html#__type.leftAyahId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":1024,\"name\":\"rightAyahId\",\"url\":\"types/JuzMeta.html#__type.rightAyahId\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"JuzMeta.__type\"},{\"kind\":4194304,\"name\":\"SurahMeta\",\"url\":\"types/SurahMeta.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Sajda\",\"url\":\"types/Sajda.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Surah\",\"url\":\"types/Surah.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":32,\"name\":\"suraNamesEn\",\"url\":\"variables/suraNamesEn.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"suraNamesRu\",\"url\":\"variables/suraNamesRu.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"meta\",\"url\":\"variables/meta.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SuraList\",\"url\":\"variables/SuraList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"HizbQuarterList\",\"url\":\"variables/HizbQuarterList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"RukuList\",\"url\":\"variables/RukuList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"PageList\",\"url\":\"variables/PageList.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":64,\"name\":\"ayaStringSplitter\",\"url\":\"functions/ayaStringSplitter.html\",\"classes\":\"tsd-kind-function\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,35.648]],[\"comment/0\",[]],[\"name/1\",[1,35.648]],[\"comment/1\",[]],[\"name/2\",[2,35.648]],[\"comment/2\",[]],[\"name/3\",[3,35.648]],[\"comment/3\",[]],[\"name/4\",[4,35.648]],[\"comment/4\",[]],[\"name/5\",[5,35.648]],[\"comment/5\",[]],[\"name/6\",[6,35.648]],[\"comment/6\",[]],[\"name/7\",[7,35.648]],[\"comment/7\",[]],[\"name/8\",[8,27.175]],[\"comment/8\",[]],[\"name/9\",[9,30.54]],[\"comment/9\",[]],[\"name/10\",[10,30.54]],[\"comment/10\",[]],[\"name/11\",[11,30.54]],[\"comment/11\",[]],[\"name/12\",[12,35.648]],[\"comment/12\",[]],[\"name/13\",[13,35.648]],[\"comment/13\",[]],[\"name/14\",[14,35.648]],[\"comment/14\",[]],[\"name/15\",[15,35.648]],[\"comment/15\",[]],[\"name/16\",[16,35.648]],[\"comment/16\",[]],[\"name/17\",[17,35.648]],[\"comment/17\",[]],[\"name/18\",[18,35.648]],[\"comment/18\",[]],[\"name/19\",[19,30.54]],[\"comment/19\",[]],[\"name/20\",[20,35.648]],[\"comment/20\",[]],[\"name/21\",[21,35.648]],[\"comment/21\",[]],[\"name/22\",[22,35.648]],[\"comment/22\",[]],[\"name/23\",[23,35.648]],[\"comment/23\",[]],[\"name/24\",[24,35.648]],[\"comment/24\",[]],[\"name/25\",[25,35.648]],[\"comment/25\",[]],[\"name/26\",[26,35.648]],[\"comment/26\",[]],[\"name/27\",[9,30.54]],[\"comment/27\",[]],[\"name/28\",[27,35.648]],[\"comment/28\",[]],[\"name/29\",[19,30.54]],[\"comment/29\",[]],[\"name/30\",[8,27.175]],[\"comment/30\",[]],[\"name/31\",[28,35.648]],[\"comment/31\",[]],[\"name/32\",[29,35.648]],[\"comment/32\",[]],[\"name/33\",[30,35.648]],[\"comment/33\",[]],[\"name/34\",[31,35.648]],[\"comment/34\",[]],[\"name/35\",[8,27.175]],[\"comment/35\",[]],[\"name/36\",[32,35.648]],[\"comment/36\",[]],[\"name/37\",[11,30.54]],[\"comment/37\",[]],[\"name/38\",[33,35.648]],[\"comment/38\",[]],[\"name/39\",[10,30.54]],[\"comment/39\",[]],[\"name/40\",[34,35.648]],[\"comment/40\",[]],[\"name/41\",[35,35.648]],[\"comment/41\",[]],[\"name/42\",[36,35.648]],[\"comment/42\",[]],[\"name/43\",[37,35.648]],[\"comment/43\",[]],[\"name/44\",[38,35.648]],[\"comment/44\",[]],[\"name/45\",[39,35.648]],[\"comment/45\",[]],[\"name/46\",[40,35.648]],[\"comment/46\",[]],[\"name/47\",[41,35.648]],[\"comment/47\",[]],[\"name/48\",[42,35.648]],[\"comment/48\",[]],[\"name/49\",[43,35.648]],[\"comment/49\",[]],[\"name/50\",[44,35.648]],[\"comment/50\",[]],[\"name/51\",[45,35.648]],[\"comment/51\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":8,\"name\":{\"8\":{},\"30\":{},\"35\":{}},\"comment\":{}}],[\"ayahid\",{\"_index\":24,\"name\":{\"24\":{}},\"comment\":{}}],[\"ayahno\",{\"_index\":25,\"name\":{\"25\":{}},\"comment\":{}}],[\"ayahsbetweenjuzsurah\",{\"_index\":11,\"name\":{\"11\":{},\"37\":{}},\"comment\":{}}],[\"ayastringsplitter\",{\"_index\":45,\"name\":{\"51\":{}},\"comment\":{}}],[\"findayaidbysurah\",{\"_index\":15,\"name\":{\"15\":{}},\"comment\":{}}],[\"findjuz\",{\"_index\":3,\"name\":{\"3\":{}},\"comment\":{}}],[\"findjuzandshift\",{\"_index\":7,\"name\":{\"7\":{}},\"comment\":{}}],[\"findjuzbyayaid\",{\"_index\":1,\"name\":{\"1\":{}},\"comment\":{}}],[\"findjuzhizb\",{\"_index\":4,\"name\":{\"4\":{}},\"comment\":{}}],[\"findjuzhizbbyayaid\",{\"_index\":2,\"name\":{\"2\":{}},\"comment\":{}}],[\"findjuzmetabysurah\",{\"_index\":12,\"name\":{\"12\":{}},\"comment\":{}}],[\"findpage\",{\"_index\":14,\"name\":{\"14\":{}},\"comment\":{}}],[\"findrangearoundayah\",{\"_index\":20,\"name\":{\"20\":{}},\"comment\":{}}],[\"findsurahbyayaid\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"first\",{\"_index\":29,\"name\":{\"32\":{}},\"comment\":{}}],[\"getayacountinsura\",{\"_index\":16,\"name\":{\"16\":{}},\"comment\":{}}],[\"getsurahmeta\",{\"_index\":13,\"name\":{\"13\":{}},\"comment\":{}}],[\"hizbquarterlist\",{\"_index\":42,\"name\":{\"48\":{}},\"comment\":{}}],[\"isayahjuzfirst\",{\"_index\":5,\"name\":{\"5\":{}},\"comment\":{}}],[\"isayahpagefirst\",{\"_index\":6,\"name\":{\"6\":{}},\"comment\":{}}],[\"juz\",{\"_index\":9,\"name\":{\"9\":{},\"27\":{}},\"comment\":{}}],[\"juzlist\",{\"_index\":21,\"name\":{\"21\":{}},\"comment\":{}}],[\"juzmeta\",{\"_index\":31,\"name\":{\"34\":{}},\"comment\":{}}],[\"last\",{\"_index\":30,\"name\":{\"33\":{}},\"comment\":{}}],[\"leftayahid\",{\"_index\":10,\"name\":{\"10\":{},\"39\":{}},\"comment\":{}}],[\"leftjuz\",{\"_index\":32,\"name\":{\"36\":{}},\"comment\":{}}],[\"manzillist\",{\"_index\":22,\"name\":{\"22\":{}},\"comment\":{}}],[\"meta\",{\"_index\":40,\"name\":{\"46\":{}},\"comment\":{}}],[\"nextayah\",{\"_index\":17,\"name\":{\"17\":{}},\"comment\":{}}],[\"page\",{\"_index\":26,\"name\":{\"26\":{}},\"comment\":{}}],[\"pagelist\",{\"_index\":44,\"name\":{\"50\":{}},\"comment\":{}}],[\"pagemeta\",{\"_index\":19,\"name\":{\"19\":{},\"29\":{}},\"comment\":{}}],[\"pagenum\",{\"_index\":28,\"name\":{\"31\":{}},\"comment\":{}}],[\"prevayah\",{\"_index\":18,\"name\":{\"18\":{}},\"comment\":{}}],[\"rightayahid\",{\"_index\":34,\"name\":{\"40\":{}},\"comment\":{}}],[\"rightjuz\",{\"_index\":33,\"name\":{\"38\":{}},\"comment\":{}}],[\"rukulist\",{\"_index\":43,\"name\":{\"49\":{}},\"comment\":{}}],[\"sajda\",{\"_index\":36,\"name\":{\"42\":{}},\"comment\":{}}],[\"sajdalist\",{\"_index\":23,\"name\":{\"23\":{}},\"comment\":{}}],[\"surah\",{\"_index\":37,\"name\":{\"43\":{}},\"comment\":{}}],[\"surahayah\",{\"_index\":27,\"name\":{\"28\":{}},\"comment\":{}}],[\"surahmeta\",{\"_index\":35,\"name\":{\"41\":{}},\"comment\":{}}],[\"suralist\",{\"_index\":41,\"name\":{\"47\":{}},\"comment\":{}}],[\"suranamesen\",{\"_index\":38,\"name\":{\"44\":{}},\"comment\":{}}],[\"suranamesru\",{\"_index\":39,\"name\":{\"45\":{}},\"comment\":{}}]],\"pipeline\":[]}}");
\ No newline at end of file
+window.searchData = "data:application/octet-stream;base64,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";
\ No newline at end of file
diff --git a/docs/assets/style.css b/docs/assets/style.css
index e509385..9d619a6 100644
--- a/docs/assets/style.css
+++ b/docs/assets/style.css
@@ -2,38 +2,84 @@
     /* Light */
     --light-color-background: #f2f4f8;
     --light-color-background-secondary: #eff0f1;
+    --light-color-warning-text: #222;
+    --light-color-background-warning: #e6e600;
     --light-color-icon-background: var(--light-color-background);
     --light-color-accent: #c5c7c9;
+    --light-color-active-menu-item: var(--light-color-accent);
     --light-color-text: #222;
-    --light-color-text-aside: #707070;
-    --light-color-link: #4da6ff;
-    --light-color-ts: #db1373;
-    --light-color-ts-interface: #139d2c;
-    --light-color-ts-enum: #9c891a;
-    --light-color-ts-class: #2484e5;
+    --light-color-text-aside: #6e6e6e;
+    --light-color-link: #1f70c2;
+    --light-color-focus-outline: #3584e4;
+
+    --light-color-ts-keyword: #056bd6;
+    --light-color-ts-project: #b111c9;
+    --light-color-ts-module: var(--light-color-ts-project);
+    --light-color-ts-namespace: var(--light-color-ts-project);
+    --light-color-ts-enum: #7e6f15;
+    --light-color-ts-enum-member: var(--light-color-ts-enum);
+    --light-color-ts-variable: #4760ec;
     --light-color-ts-function: #572be7;
-    --light-color-ts-namespace: #b111c9;
-    --light-color-ts-private: #707070;
-    --light-color-ts-variable: #4d68ff;
+    --light-color-ts-class: #1f70c2;
+    --light-color-ts-interface: #108024;
+    --light-color-ts-constructor: var(--light-color-ts-class);
+    --light-color-ts-property: var(--light-color-ts-variable);
+    --light-color-ts-method: var(--light-color-ts-function);
+    --light-color-ts-call-signature: var(--light-color-ts-method);
+    --light-color-ts-index-signature: var(--light-color-ts-property);
+    --light-color-ts-constructor-signature: var(--light-color-ts-constructor);
+    --light-color-ts-parameter: var(--light-color-ts-variable);
+    /* type literal not included as links will never be generated to it */
+    --light-color-ts-type-parameter: #a55c0e;
+    --light-color-ts-accessor: var(--light-color-ts-property);
+    --light-color-ts-get-signature: var(--light-color-ts-accessor);
+    --light-color-ts-set-signature: var(--light-color-ts-accessor);
+    --light-color-ts-type-alias: #d51270;
+    /* reference not included as links will be colored with the kind that it points to */
+    --light-color-document: #000000;
+
     --light-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
     --light-color-scheme: light;
 
     /* Dark */
     --dark-color-background: #2b2e33;
     --dark-color-background-secondary: #1e2024;
+    --dark-color-background-warning: #bebe00;
+    --dark-color-warning-text: #222;
     --dark-color-icon-background: var(--dark-color-background-secondary);
     --dark-color-accent: #9096a2;
+    --dark-color-active-menu-item: #5d5d6a;
     --dark-color-text: #f5f5f5;
     --dark-color-text-aside: #dddddd;
     --dark-color-link: #00aff4;
-    --dark-color-ts: #ff6492;
-    --dark-color-ts-interface: #6cff87;
+    --dark-color-focus-outline: #4c97f2;
+
+    --dark-color-ts-keyword: #3399ff;
+    --dark-color-ts-project: #e358ff;
+    --dark-color-ts-module: var(--dark-color-ts-project);
+    --dark-color-ts-namespace: var(--dark-color-ts-project);
     --dark-color-ts-enum: #f4d93e;
-    --dark-color-ts-class: #61b0ff;
-    --dark-color-ts-function: #9772ff;
-    --dark-color-ts-namespace: #e14dff;
-    --dark-color-ts-private: #e2e2e2;
-    --dark-color-ts-variable: #4d68ff;
+    --dark-color-ts-enum-member: var(--dark-color-ts-enum);
+    --dark-color-ts-variable: #798dff;
+    --dark-color-ts-function: #a280ff;
+    --dark-color-ts-class: #8ac4ff;
+    --dark-color-ts-interface: #6cff87;
+    --dark-color-ts-constructor: var(--dark-color-ts-class);
+    --dark-color-ts-property: var(--dark-color-ts-variable);
+    --dark-color-ts-method: var(--dark-color-ts-function);
+    --dark-color-ts-call-signature: var(--dark-color-ts-method);
+    --dark-color-ts-index-signature: var(--dark-color-ts-property);
+    --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor);
+    --dark-color-ts-parameter: var(--dark-color-ts-variable);
+    /* type literal not included as links will never be generated to it */
+    --dark-color-ts-type-parameter: #e07d13;
+    --dark-color-ts-accessor: var(--dark-color-ts-property);
+    --dark-color-ts-get-signature: var(--dark-color-ts-accessor);
+    --dark-color-ts-set-signature: var(--dark-color-ts-accessor);
+    --dark-color-ts-type-alias: #ff6492;
+    /* reference not included as links will be colored with the kind that it points to */
+    --dark-color-document: #ffffff;
+
     --dark-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23fff' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
     --dark-color-scheme: dark;
 }
@@ -42,19 +88,41 @@
     :root {
         --color-background: var(--light-color-background);
         --color-background-secondary: var(--light-color-background-secondary);
+        --color-background-warning: var(--light-color-background-warning);
+        --color-warning-text: var(--light-color-warning-text);
         --color-icon-background: var(--light-color-icon-background);
         --color-accent: var(--light-color-accent);
+        --color-active-menu-item: var(--light-color-active-menu-item);
         --color-text: var(--light-color-text);
         --color-text-aside: var(--light-color-text-aside);
         --color-link: var(--light-color-link);
-        --color-ts: var(--light-color-ts);
-        --color-ts-interface: var(--light-color-ts-interface);
-        --color-ts-enum: var(--light-color-ts-enum);
-        --color-ts-class: var(--light-color-ts-class);
-        --color-ts-function: var(--light-color-ts-function);
+        --color-focus-outline: var(--light-color-focus-outline);
+
+        --color-ts-keyword: var(--light-color-ts-keyword);
+        --color-ts-module: var(--light-color-ts-module);
         --color-ts-namespace: var(--light-color-ts-namespace);
-        --color-ts-private: var(--light-color-ts-private);
+        --color-ts-enum: var(--light-color-ts-enum);
+        --color-ts-enum-member: var(--light-color-ts-enum-member);
         --color-ts-variable: var(--light-color-ts-variable);
+        --color-ts-function: var(--light-color-ts-function);
+        --color-ts-class: var(--light-color-ts-class);
+        --color-ts-interface: var(--light-color-ts-interface);
+        --color-ts-constructor: var(--light-color-ts-constructor);
+        --color-ts-property: var(--light-color-ts-property);
+        --color-ts-method: var(--light-color-ts-method);
+        --color-ts-call-signature: var(--light-color-ts-call-signature);
+        --color-ts-index-signature: var(--light-color-ts-index-signature);
+        --color-ts-constructor-signature: var(
+            --light-color-ts-constructor-signature
+        );
+        --color-ts-parameter: var(--light-color-ts-parameter);
+        --color-ts-type-parameter: var(--light-color-ts-type-parameter);
+        --color-ts-accessor: var(--light-color-ts-accessor);
+        --color-ts-get-signature: var(--light-color-ts-get-signature);
+        --color-ts-set-signature: var(--light-color-ts-set-signature);
+        --color-ts-type-alias: var(--light-color-ts-type-alias);
+        --color-document: var(--light-color-document);
+
         --external-icon: var(--light-external-icon);
         --color-scheme: var(--light-color-scheme);
     }
@@ -64,19 +132,41 @@
     :root {
         --color-background: var(--dark-color-background);
         --color-background-secondary: var(--dark-color-background-secondary);
+        --color-background-warning: var(--dark-color-background-warning);
+        --color-warning-text: var(--dark-color-warning-text);
         --color-icon-background: var(--dark-color-icon-background);
         --color-accent: var(--dark-color-accent);
+        --color-active-menu-item: var(--dark-color-active-menu-item);
         --color-text: var(--dark-color-text);
         --color-text-aside: var(--dark-color-text-aside);
         --color-link: var(--dark-color-link);
-        --color-ts: var(--dark-color-ts);
-        --color-ts-interface: var(--dark-color-ts-interface);
-        --color-ts-enum: var(--dark-color-ts-enum);
-        --color-ts-class: var(--dark-color-ts-class);
-        --color-ts-function: var(--dark-color-ts-function);
+        --color-focus-outline: var(--dark-color-focus-outline);
+
+        --color-ts-keyword: var(--dark-color-ts-keyword);
+        --color-ts-module: var(--dark-color-ts-module);
         --color-ts-namespace: var(--dark-color-ts-namespace);
-        --color-ts-private: var(--dark-color-ts-private);
+        --color-ts-enum: var(--dark-color-ts-enum);
+        --color-ts-enum-member: var(--dark-color-ts-enum-member);
         --color-ts-variable: var(--dark-color-ts-variable);
+        --color-ts-function: var(--dark-color-ts-function);
+        --color-ts-class: var(--dark-color-ts-class);
+        --color-ts-interface: var(--dark-color-ts-interface);
+        --color-ts-constructor: var(--dark-color-ts-constructor);
+        --color-ts-property: var(--dark-color-ts-property);
+        --color-ts-method: var(--dark-color-ts-method);
+        --color-ts-call-signature: var(--dark-color-ts-call-signature);
+        --color-ts-index-signature: var(--dark-color-ts-index-signature);
+        --color-ts-constructor-signature: var(
+            --dark-color-ts-constructor-signature
+        );
+        --color-ts-parameter: var(--dark-color-ts-parameter);
+        --color-ts-type-parameter: var(--dark-color-ts-type-parameter);
+        --color-ts-accessor: var(--dark-color-ts-accessor);
+        --color-ts-get-signature: var(--dark-color-ts-get-signature);
+        --color-ts-set-signature: var(--dark-color-ts-set-signature);
+        --color-ts-type-alias: var(--dark-color-ts-type-alias);
+        --color-document: var(--dark-color-document);
+
         --external-icon: var(--dark-external-icon);
         --color-scheme: var(--dark-color-scheme);
     }
@@ -93,19 +183,41 @@ body {
 :root[data-theme="light"] {
     --color-background: var(--light-color-background);
     --color-background-secondary: var(--light-color-background-secondary);
+    --color-background-warning: var(--light-color-background-warning);
+    --color-warning-text: var(--light-color-warning-text);
     --color-icon-background: var(--light-color-icon-background);
     --color-accent: var(--light-color-accent);
+    --color-active-menu-item: var(--light-color-active-menu-item);
     --color-text: var(--light-color-text);
     --color-text-aside: var(--light-color-text-aside);
     --color-link: var(--light-color-link);
-    --color-ts: var(--light-color-ts);
-    --color-ts-interface: var(--light-color-ts-interface);
-    --color-ts-enum: var(--light-color-ts-enum);
-    --color-ts-class: var(--light-color-ts-class);
-    --color-ts-function: var(--light-color-ts-function);
+    --color-focus-outline: var(--light-color-focus-outline);
+
+    --color-ts-keyword: var(--light-color-ts-keyword);
+    --color-ts-module: var(--light-color-ts-module);
     --color-ts-namespace: var(--light-color-ts-namespace);
-    --color-ts-private: var(--light-color-ts-private);
+    --color-ts-enum: var(--light-color-ts-enum);
+    --color-ts-enum-member: var(--light-color-ts-enum-member);
     --color-ts-variable: var(--light-color-ts-variable);
+    --color-ts-function: var(--light-color-ts-function);
+    --color-ts-class: var(--light-color-ts-class);
+    --color-ts-interface: var(--light-color-ts-interface);
+    --color-ts-constructor: var(--light-color-ts-constructor);
+    --color-ts-property: var(--light-color-ts-property);
+    --color-ts-method: var(--light-color-ts-method);
+    --color-ts-call-signature: var(--light-color-ts-call-signature);
+    --color-ts-index-signature: var(--light-color-ts-index-signature);
+    --color-ts-constructor-signature: var(
+        --light-color-ts-constructor-signature
+    );
+    --color-ts-parameter: var(--light-color-ts-parameter);
+    --color-ts-type-parameter: var(--light-color-ts-type-parameter);
+    --color-ts-accessor: var(--light-color-ts-accessor);
+    --color-ts-get-signature: var(--light-color-ts-get-signature);
+    --color-ts-set-signature: var(--light-color-ts-set-signature);
+    --color-ts-type-alias: var(--light-color-ts-type-alias);
+    --color-document: var(--light-color-document);
+
     --external-icon: var(--light-external-icon);
     --color-scheme: var(--light-color-scheme);
 }
@@ -113,23 +225,55 @@ body {
 :root[data-theme="dark"] {
     --color-background: var(--dark-color-background);
     --color-background-secondary: var(--dark-color-background-secondary);
+    --color-background-warning: var(--dark-color-background-warning);
+    --color-warning-text: var(--dark-color-warning-text);
     --color-icon-background: var(--dark-color-icon-background);
     --color-accent: var(--dark-color-accent);
+    --color-active-menu-item: var(--dark-color-active-menu-item);
     --color-text: var(--dark-color-text);
     --color-text-aside: var(--dark-color-text-aside);
     --color-link: var(--dark-color-link);
-    --color-ts: var(--dark-color-ts);
-    --color-ts-interface: var(--dark-color-ts-interface);
-    --color-ts-enum: var(--dark-color-ts-enum);
-    --color-ts-class: var(--dark-color-ts-class);
-    --color-ts-function: var(--dark-color-ts-function);
+    --color-focus-outline: var(--dark-color-focus-outline);
+
+    --color-ts-keyword: var(--dark-color-ts-keyword);
+    --color-ts-module: var(--dark-color-ts-module);
     --color-ts-namespace: var(--dark-color-ts-namespace);
-    --color-ts-private: var(--dark-color-ts-private);
+    --color-ts-enum: var(--dark-color-ts-enum);
+    --color-ts-enum-member: var(--dark-color-ts-enum-member);
     --color-ts-variable: var(--dark-color-ts-variable);
+    --color-ts-function: var(--dark-color-ts-function);
+    --color-ts-class: var(--dark-color-ts-class);
+    --color-ts-interface: var(--dark-color-ts-interface);
+    --color-ts-constructor: var(--dark-color-ts-constructor);
+    --color-ts-property: var(--dark-color-ts-property);
+    --color-ts-method: var(--dark-color-ts-method);
+    --color-ts-call-signature: var(--dark-color-ts-call-signature);
+    --color-ts-index-signature: var(--dark-color-ts-index-signature);
+    --color-ts-constructor-signature: var(
+        --dark-color-ts-constructor-signature
+    );
+    --color-ts-parameter: var(--dark-color-ts-parameter);
+    --color-ts-type-parameter: var(--dark-color-ts-type-parameter);
+    --color-ts-accessor: var(--dark-color-ts-accessor);
+    --color-ts-get-signature: var(--dark-color-ts-get-signature);
+    --color-ts-set-signature: var(--dark-color-ts-set-signature);
+    --color-ts-type-alias: var(--dark-color-ts-type-alias);
+    --color-document: var(--dark-color-document);
+
     --external-icon: var(--dark-external-icon);
     --color-scheme: var(--dark-color-scheme);
 }
 
+*:focus-visible,
+.tsd-accordion-summary:focus-visible svg {
+    outline: 2px solid var(--color-focus-outline);
+}
+
+.always-visible,
+.always-visible .tsd-signatures {
+    display: inherit !important;
+}
+
 h1,
 h2,
 h3,
@@ -169,16 +313,6 @@ h6 {
     margin: 2.33rem 0;
 }
 
-.uppercase {
-    text-transform: uppercase;
-}
-
-pre {
-    white-space: pre;
-    white-space: pre-wrap;
-    word-wrap: break-word;
-}
-
 dl,
 menu,
 ol,
@@ -191,61 +325,25 @@ dd {
 }
 
 .container {
-    max-width: 1600px;
+    max-width: 1700px;
     padding: 0 2rem;
 }
 
-@media (min-width: 640px) {
-    .container {
-        padding: 0 4rem;
-    }
-}
-@media (min-width: 1200px) {
-    .container {
-        padding: 0 8rem;
-    }
-}
-@media (min-width: 1600px) {
-    .container {
-        padding: 0 12rem;
-    }
-}
-
 /* Footer */
-.tsd-generator {
+footer {
     border-top: 1px solid var(--color-accent);
     padding-top: 1rem;
     padding-bottom: 1rem;
     max-height: 3.5rem;
 }
-
-.tsd-generator > p {
-    margin-top: 0;
-    margin-bottom: 0;
-    padding: 0 1rem;
+footer > p {
+    margin: 0 1em;
 }
 
 .container-main {
-    display: flex;
-    justify-content: space-between;
-    position: relative;
     margin: 0 auto;
-}
-
-.col-4,
-.col-8 {
-    box-sizing: border-box;
-    float: left;
-    padding: 2rem 1rem;
-}
-
-.col-4 {
-    flex: 0 0 25%;
-}
-.col-8 {
-    flex: 1 0;
-    flex-wrap: wrap;
-    padding-left: 0;
+    /* toolbar, footer, margin */
+    min-height: calc(100vh - 41px - 56px - 4rem);
 }
 
 @keyframes fade-in {
@@ -288,22 +386,6 @@ dd {
         opacity: 0;
     }
 }
-@keyframes shift-to-left {
-    from {
-        transform: translate(0, 0);
-    }
-    to {
-        transform: translate(-25%, 0);
-    }
-}
-@keyframes unshift-to-left {
-    from {
-        transform: translate(-25%, 0);
-    }
-    to {
-        transform: translate(0, 0);
-    }
-}
 @keyframes pop-in-from-right {
     from {
         transform: translate(100%, 0);
@@ -323,7 +405,8 @@ dd {
 }
 body {
     background: var(--color-background);
-    font-family: "Segoe UI", sans-serif;
+    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
+        Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
     font-size: 16px;
     color: var(--color-text);
 }
@@ -341,6 +424,9 @@ a.external[target="_blank"] {
     background-repeat: no-repeat;
     padding-right: 13px;
 }
+a.tsd-anchor-link {
+    color: var(--color-text);
+}
 
 code,
 pre {
@@ -352,13 +438,29 @@ pre {
 }
 
 pre {
+    position: relative;
+    white-space: pre;
+    white-space: pre-wrap;
+    word-wrap: break-word;
     padding: 10px;
-    border: 0.1em solid var(--color-accent);
+    border: 1px solid var(--color-accent);
 }
 pre code {
     padding: 0;
     font-size: 100%;
 }
+pre > button {
+    position: absolute;
+    top: 10px;
+    right: 10px;
+    opacity: 0;
+    transition: opacity 0.1s;
+    box-sizing: border-box;
+}
+pre:hover > button,
+pre > button.visible {
+    opacity: 1;
+}
 
 blockquote {
     margin: 1em 0;
@@ -374,13 +476,12 @@ blockquote {
     padding: 0 0 0 20px;
     margin: 0;
 }
-.tsd-typography h4,
 .tsd-typography .tsd-index-panel h3,
 .tsd-index-panel .tsd-typography h3,
+.tsd-typography h4,
 .tsd-typography h5,
 .tsd-typography h6 {
     font-size: 1em;
-    margin: 0;
 }
 .tsd-typography h5,
 .tsd-typography h6 {
@@ -391,91 +492,18 @@ blockquote {
 .tsd-typography ol {
     margin: 1em 0;
 }
-
-@media (max-width: 1024px) {
-    html .col-content {
-        float: none;
-        max-width: 100%;
-        width: 100%;
-        padding-top: 3rem;
-    }
-    html .col-menu {
-        position: fixed !important;
-        overflow-y: auto;
-        -webkit-overflow-scrolling: touch;
-        z-index: 1024;
-        top: 0 !important;
-        bottom: 0 !important;
-        left: auto !important;
-        right: 0 !important;
-        padding: 1.5rem 1.5rem 0 0;
-        max-width: 25rem;
-        visibility: hidden;
-        background-color: var(--color-background);
-        transform: translate(100%, 0);
-    }
-    html .col-menu > *:last-child {
-        padding-bottom: 20px;
-    }
-    html .overlay {
-        content: "";
-        display: block;
-        position: fixed;
-        z-index: 1023;
-        top: 0;
-        left: 0;
-        right: 0;
-        bottom: 0;
-        background-color: rgba(0, 0, 0, 0.75);
-        visibility: hidden;
-    }
-
-    .to-has-menu .overlay {
-        animation: fade-in 0.4s;
-    }
-
-    .to-has-menu :is(header, footer, .col-content) {
-        animation: shift-to-left 0.4s;
-    }
-
-    .to-has-menu .col-menu {
-        animation: pop-in-from-right 0.4s;
-    }
-
-    .from-has-menu .overlay {
-        animation: fade-out 0.4s;
-    }
-
-    .from-has-menu :is(header, footer, .col-content) {
-        animation: unshift-to-left 0.4s;
-    }
-
-    .from-has-menu .col-menu {
-        animation: pop-out-to-right 0.4s;
-    }
-
-    .has-menu body {
-        overflow: hidden;
-    }
-    .has-menu .overlay {
-        visibility: visible;
-    }
-    .has-menu :is(header, footer, .col-content) {
-        transform: translate(-25%, 0);
-    }
-    .has-menu .col-menu {
-        visibility: visible;
-        transform: translate(0, 0);
-        display: grid;
-        align-items: center;
-        grid-template-rows: auto 1fr;
-        grid-gap: 1.5rem;
-        max-height: 100vh;
-        padding: 1rem 2rem;
-    }
-    .has-menu .tsd-navigation {
-        max-height: 100%;
-    }
+.tsd-typography table {
+    border-collapse: collapse;
+    border: none;
+}
+.tsd-typography td,
+.tsd-typography th {
+    padding: 6px 13px;
+    border: 1px solid var(--color-accent);
+}
+.tsd-typography thead,
+.tsd-typography tr:nth-child(even) {
+    background-color: var(--color-background-secondary);
 }
 
 .tsd-breadcrumb {
@@ -558,13 +586,13 @@ dl.tsd-comment-tag-group p {
 }
 .tsd-filter-input {
     display: flex;
-    width: fit-content;
     width: -moz-fit-content;
+    width: fit-content;
     align-items: center;
-    user-select: none;
     -webkit-user-select: none;
     -moz-user-select: none;
     -ms-user-select: none;
+    user-select: none;
     cursor: pointer;
 }
 .tsd-filter-input input[type="checkbox"] {
@@ -587,11 +615,8 @@ dl.tsd-comment-tag-group p {
     Don't remove unless you know what you're doing. */
     opacity: 0.99;
 }
-.tsd-filter-input input[type="checkbox"]:focus + svg {
-    transform: scale(0.95);
-}
-.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg {
-    transform: scale(1);
+.tsd-filter-input input[type="checkbox"]:focus-visible + svg {
+    outline: 2px solid var(--color-focus-outline);
 }
 .tsd-checkbox-background {
     fill: var(--color-accent);
@@ -608,13 +633,18 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     stroke: var(--color-accent);
 }
 
-.tsd-theme-toggle {
-    padding-top: 0.75rem;
+.settings-label {
+    font-weight: bold;
+    text-transform: uppercase;
+    display: inline-block;
 }
-.tsd-theme-toggle > h4 {
-    display: inline;
-    vertical-align: middle;
-    margin-right: 0.75rem;
+
+.tsd-filter-visibility .settings-label {
+    margin: 0.75rem 0 0.5rem 0;
+}
+
+.tsd-theme-toggle .settings-label {
+    margin: 0.75rem 0.75rem 0 0;
 }
 
 .tsd-hierarchy {
@@ -625,6 +655,28 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     font-weight: bold;
 }
 
+.tsd-full-hierarchy:not(:last-child) {
+    margin-bottom: 1em;
+    padding-bottom: 1em;
+    border-bottom: 1px solid var(--color-accent);
+}
+.tsd-full-hierarchy,
+.tsd-full-hierarchy ul {
+    list-style: none;
+    margin: 0;
+    padding: 0;
+}
+.tsd-full-hierarchy ul {
+    padding-left: 1.5rem;
+}
+.tsd-full-hierarchy a {
+    padding: 0.25rem 0 !important;
+    font-size: 1rem;
+    display: inline-flex;
+    align-items: center;
+    color: var(--color-text);
+}
+
 .tsd-panel-group.tsd-index-group {
     margin-bottom: 0;
 }
@@ -656,43 +708,6 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     -o-page-break-inside: avoid;
     page-break-inside: avoid;
 }
-.tsd-index-panel a,
-.tsd-index-panel a.tsd-parent-kind-module {
-    color: var(--color-ts);
-}
-.tsd-index-panel a.tsd-parent-kind-interface {
-    color: var(--color-ts-interface);
-}
-.tsd-index-panel a.tsd-parent-kind-enum {
-    color: var(--color-ts-enum);
-}
-.tsd-index-panel a.tsd-parent-kind-class {
-    color: var(--color-ts-class);
-}
-.tsd-index-panel a.tsd-kind-module {
-    color: var(--color-ts-namespace);
-}
-.tsd-index-panel a.tsd-kind-interface {
-    color: var(--color-ts-interface);
-}
-.tsd-index-panel a.tsd-kind-enum {
-    color: var(--color-ts-enum);
-}
-.tsd-index-panel a.tsd-kind-class {
-    color: var(--color-ts-class);
-}
-.tsd-index-panel a.tsd-kind-function {
-    color: var(--color-ts-function);
-}
-.tsd-index-panel a.tsd-kind-namespace {
-    color: var(--color-ts-namespace);
-}
-.tsd-index-panel a.tsd-kind-variable {
-    color: var(--color-ts-variable);
-}
-.tsd-index-panel a.tsd-is-private {
-    color: var(--color-ts-private);
-}
 
 .tsd-flag {
     display: inline-block;
@@ -707,7 +722,7 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
 }
 
 .tsd-anchor {
-    position: absolute;
+    position: relative;
     top: -100px;
 }
 
@@ -721,108 +736,74 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
     margin-bottom: 0;
     border-bottom: none;
 }
-.tsd-member [data-tsd-kind] {
-    color: var(--color-ts);
-}
-.tsd-member [data-tsd-kind="Interface"] {
-    color: var(--color-ts-interface);
-}
-.tsd-member [data-tsd-kind="Enum"] {
-    color: var(--color-ts-enum);
-}
-.tsd-member [data-tsd-kind="Class"] {
-    color: var(--color-ts-class);
+
+.tsd-navigation.settings {
+    margin: 1rem 0;
 }
-.tsd-member [data-tsd-kind="Private"] {
-    color: var(--color-ts-private);
+.tsd-navigation > a,
+.tsd-navigation .tsd-accordion-summary {
+    width: calc(100% - 0.25rem);
+    display: flex;
+    align-items: center;
 }
-
-.tsd-navigation a {
-    display: block;
-    margin: 0.4rem 0;
-    border-left: 2px solid transparent;
+.tsd-navigation a,
+.tsd-navigation summary > span,
+.tsd-page-navigation a {
+    display: flex;
+    width: calc(100% - 0.25rem);
+    align-items: center;
+    padding: 0.25rem;
     color: var(--color-text);
     text-decoration: none;
-    transition: border-left-color 0.1s;
+    box-sizing: border-box;
 }
-.tsd-navigation a:hover {
+.tsd-navigation a.current,
+.tsd-page-navigation a.current {
+    background: var(--color-active-menu-item);
+}
+.tsd-navigation a:hover,
+.tsd-page-navigation a:hover {
     text-decoration: underline;
 }
-.tsd-navigation ul {
-    margin: 0;
+.tsd-navigation ul,
+.tsd-page-navigation ul {
+    margin-top: 0;
+    margin-bottom: 0;
     padding: 0;
     list-style: none;
 }
-.tsd-navigation li {
+.tsd-navigation li,
+.tsd-page-navigation li {
     padding: 0;
+    max-width: 100%;
 }
-
-.tsd-navigation.primary .tsd-accordion-details > ul {
-    margin-top: 0.75rem;
+.tsd-navigation .tsd-nav-link {
+    display: none;
 }
-.tsd-navigation.primary a {
-    padding: 0.75rem 0.5rem;
-    margin: 0;
+.tsd-nested-navigation {
+    margin-left: 3rem;
 }
-.tsd-navigation.primary ul li a {
-    margin-left: 0.5rem;
+.tsd-nested-navigation > li > details {
+    margin-left: -1.5rem;
 }
-.tsd-navigation.primary ul li li a {
+.tsd-small-nested-navigation {
     margin-left: 1.5rem;
 }
-.tsd-navigation.primary ul li li li a {
-    margin-left: 2.5rem;
-}
-.tsd-navigation.primary ul li li li li a {
-    margin-left: 3.5rem;
-}
-.tsd-navigation.primary ul li li li li li a {
-    margin-left: 4.5rem;
-}
-.tsd-navigation.primary ul li li li li li li a {
-    margin-left: 5.5rem;
-}
-.tsd-navigation.primary li.current > a {
-    border-left: 0.15rem var(--color-text) solid;
-}
-.tsd-navigation.primary li.selected > a {
-    font-weight: bold;
-    border-left: 0.2rem var(--color-text) solid;
-}
-.tsd-navigation.primary ul li a:hover {
-    border-left: 0.2rem var(--color-text-aside) solid;
-}
-.tsd-navigation.primary li.globals + li > span,
-.tsd-navigation.primary li.globals + li > a {
-    padding-top: 20px;
+.tsd-small-nested-navigation > li > details {
+    margin-left: -1.5rem;
 }
 
-.tsd-navigation.secondary.tsd-navigation--toolbar-hide {
-    max-height: calc(100vh - 1rem);
-    top: 0.5rem;
-}
-.tsd-navigation.secondary > ul {
-    display: inline;
-    padding-right: 0.5rem;
-    transition: opacity 0.2s;
-}
-.tsd-navigation.secondary ul li a {
-    padding-left: 0;
-}
-.tsd-navigation.secondary ul li li a {
-    padding-left: 1.1rem;
+.tsd-page-navigation-section {
+    margin-left: 10px;
 }
-.tsd-navigation.secondary ul li li li a {
-    padding-left: 2.2rem;
+.tsd-page-navigation-section > summary {
+    padding: 0.25rem;
 }
-.tsd-navigation.secondary ul li li li li a {
-    padding-left: 3.3rem;
+.tsd-page-navigation-section > div {
+    margin-left: 20px;
 }
-.tsd-navigation.secondary ul li li li li li a {
-    padding-left: 4.4rem;
-}
-.tsd-navigation.secondary ul li li li li li li a {
-    padding-left: 5.5rem;
+.tsd-page-navigation ul {
+    padding-left: 1.75rem;
 }
 
 #tsd-sidebar-links a {
@@ -835,41 +816,41 @@ input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark {
 }
 
 a.tsd-index-link {
-    margin: 0.25rem 0;
+    padding: 0.25rem 0 !important;
     font-size: 1rem;
     line-height: 1.25rem;
     display: inline-flex;
     align-items: center;
+    color: var(--color-text);
 }
-.tsd-accordion-summary > h1,
-.tsd-accordion-summary > h2,
-.tsd-accordion-summary > h3,
-.tsd-accordion-summary > h4,
-.tsd-accordion-summary > h5 {
-    display: inline-flex;
-    align-items: center;
-    vertical-align: middle;
-    margin-bottom: 0;
-    user-select: none;
+.tsd-accordion-summary {
+    list-style-type: none; /* hide marker on non-safari */
+    outline: none; /* broken on safari, so just hide it */
+}
+.tsd-accordion-summary::-webkit-details-marker {
+    display: none; /* hide marker on safari */
+}
+.tsd-accordion-summary,
+.tsd-accordion-summary a {
     -moz-user-select: none;
     -webkit-user-select: none;
     -ms-user-select: none;
-}
-.tsd-accordion-summary {
-    display: block;
+    user-select: none;
+
     cursor: pointer;
 }
+.tsd-accordion-summary a {
+    width: calc(100% - 1.5rem);
+}
 .tsd-accordion-summary > * {
     margin-top: 0;
     margin-bottom: 0;
     padding-top: 0;
     padding-bottom: 0;
 }
-.tsd-accordion-summary::-webkit-details-marker {
-    display: none;
-}
-.tsd-index-accordion .tsd-accordion-summary svg {
-    margin-right: 0.25rem;
+.tsd-accordion .tsd-accordion-summary > svg {
+    margin-left: 0.25rem;
+    vertical-align: text-top;
 }
 .tsd-index-content > :not(:first-child) {
     margin-top: 0.75rem;
@@ -894,34 +875,6 @@ a.tsd-index-link {
     margin-right: 0.8rem;
 }
 
-@media (min-width: 1024px) {
-    .col-content {
-        margin: 2rem auto;
-    }
-
-    .menu-sticky-wrap {
-        position: sticky;
-        height: calc(100vh - 2rem);
-        top: 4rem;
-        right: 0;
-        padding: 0 1.5rem;
-        padding-top: 1rem;
-        margin-top: 3rem;
-        transition: 0.3s ease-in-out;
-        transition-property: top, padding-top, padding, height;
-        overflow-y: auto;
-    }
-    .col-menu {
-        border-left: 1px solid var(--color-accent);
-    }
-    .col-menu--hide {
-        top: 1rem;
-    }
-    .col-menu .tsd-navigation:not(:last-child) {
-        padding-bottom: 1.75rem;
-    }
-}
-
 .tsd-panel {
     margin-bottom: 2.5rem;
 }
@@ -945,7 +898,7 @@ a.tsd-index-link {
 }
 
 .tsd-panel-group {
-    margin: 4rem 0;
+    margin: 2rem 0;
 }
 .tsd-panel-group.tsd-index-group {
     margin: 2rem 0;
@@ -953,6 +906,9 @@ a.tsd-index-link {
 .tsd-panel-group.tsd-index-group details {
     margin: 2rem 0;
 }
+.tsd-panel-group > .tsd-accordion-summary {
+    margin-bottom: 1rem;
+}
 
 #tsd-search {
     transition: background-color 0.2s;
@@ -1002,8 +958,9 @@ a.tsd-index-link {
     box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
 }
 #tsd-search .results li {
-    padding: 0 10px;
     background-color: var(--color-background);
+    line-height: initial;
+    padding: 4px;
 }
 #tsd-search .results li:nth-child(even) {
     background-color: var(--color-background-secondary);
@@ -1011,12 +968,15 @@ a.tsd-index-link {
 #tsd-search .results li.state {
     display: none;
 }
-#tsd-search .results li.current,
-#tsd-search .results li:hover {
+#tsd-search .results li.current:not(.no-results),
+#tsd-search .results li:hover:not(.no-results) {
     background-color: var(--color-accent);
 }
 #tsd-search .results a {
-    display: block;
+    display: flex;
+    align-items: center;
+    padding: 0.25rem;
+    box-sizing: border-box;
 }
 #tsd-search .results a:before {
     top: 10px;
@@ -1072,6 +1032,11 @@ a.tsd-index-link {
     overflow-x: auto;
 }
 
+.tsd-signature-keyword {
+    color: var(--color-ts-keyword);
+    font-weight: normal;
+}
+
 .tsd-signature-symbol {
     color: var(--color-text-aside);
     font-weight: normal;
@@ -1093,6 +1058,12 @@ a.tsd-index-link {
     border-width: 1px 0;
     transition: background-color 0.1s;
 }
+.tsd-signatures .tsd-index-signature:not(:last-child) {
+    margin-bottom: 1em;
+}
+.tsd-signatures .tsd-index-signature .tsd-signature {
+    border-width: 1px;
+}
 .tsd-description .tsd-signatures .tsd-signature {
     border-width: 1px;
 }
@@ -1127,7 +1098,7 @@ ul.tsd-type-parameter-list h5 {
 }
 
 .tsd-page-toolbar {
-    position: fixed;
+    position: sticky;
     z-index: 1;
     top: 0;
     left: 0;
@@ -1167,16 +1138,14 @@ ul.tsd-type-parameter-list h5 {
     padding: 12px 0;
 }
 
-.tsd-page-toolbar--hide {
-    transform: translateY(-100%);
-}
-
 .tsd-widget {
     display: inline-block;
     overflow: hidden;
     opacity: 0.8;
     height: 40px;
-    transition: opacity 0.1s, background-color 0.2s;
+    transition:
+        opacity 0.1s,
+        background-color 0.2s;
     vertical-align: bottom;
     cursor: pointer;
 }
@@ -1198,12 +1167,6 @@ ul.tsd-type-parameter-list h5 {
 .tsd-widget.menu {
     display: none;
 }
-@media (max-width: 1024px) {
-    .tsd-widget.options,
-    .tsd-widget.menu {
-        display: inline-block;
-    }
-}
 input[type="checkbox"] + .tsd-widget:before {
     background-position: -120px 0;
 }
@@ -1234,7 +1197,85 @@ img {
 }
 
 .deprecated {
-    text-decoration: line-through;
+    text-decoration: line-through !important;
+}
+
+.warning {
+    padding: 1rem;
+    color: var(--color-warning-text);
+    background: var(--color-background-warning);
+}
+
+.tsd-kind-project {
+    color: var(--color-ts-project);
+}
+.tsd-kind-module {
+    color: var(--color-ts-module);
+}
+.tsd-kind-namespace {
+    color: var(--color-ts-namespace);
+}
+.tsd-kind-enum {
+    color: var(--color-ts-enum);
+}
+.tsd-kind-enum-member {
+    color: var(--color-ts-enum-member);
+}
+.tsd-kind-variable {
+    color: var(--color-ts-variable);
+}
+.tsd-kind-function {
+    color: var(--color-ts-function);
+}
+.tsd-kind-class {
+    color: var(--color-ts-class);
+}
+.tsd-kind-interface {
+    color: var(--color-ts-interface);
+}
+.tsd-kind-constructor {
+    color: var(--color-ts-constructor);
+}
+.tsd-kind-property {
+    color: var(--color-ts-property);
+}
+.tsd-kind-method {
+    color: var(--color-ts-method);
+}
+.tsd-kind-call-signature {
+    color: var(--color-ts-call-signature);
+}
+.tsd-kind-index-signature {
+    color: var(--color-ts-index-signature);
+}
+.tsd-kind-constructor-signature {
+    color: var(--color-ts-constructor-signature);
+}
+.tsd-kind-parameter {
+    color: var(--color-ts-parameter);
+}
+.tsd-kind-type-literal {
+    color: var(--color-ts-type-literal);
+}
+.tsd-kind-type-parameter {
+    color: var(--color-ts-type-parameter);
+}
+.tsd-kind-accessor {
+    color: var(--color-ts-accessor);
+}
+.tsd-kind-get-signature {
+    color: var(--color-ts-get-signature);
+}
+.tsd-kind-set-signature {
+    color: var(--color-ts-set-signature);
+}
+.tsd-kind-type-alias {
+    color: var(--color-ts-type-alias);
+}
+
+/* if we have a kind icon, don't color the text by kind */
+.tsd-kind-icon ~ span {
+    color: var(--color-text);
 }
 
 * {
@@ -1255,3 +1296,153 @@ img {
     border-radius: 999rem;
     border: 0.25rem solid var(--color-icon-background);
 }
+
+/* mobile */
+@media (max-width: 769px) {
+    .tsd-widget.options,
+    .tsd-widget.menu {
+        display: inline-block;
+    }
+
+    .container-main {
+        display: flex;
+    }
+    html .col-content {
+        float: none;
+        max-width: 100%;
+        width: 100%;
+    }
+    html .col-sidebar {
+        position: fixed !important;
+        overflow-y: auto;
+        -webkit-overflow-scrolling: touch;
+        z-index: 1024;
+        top: 0 !important;
+        bottom: 0 !important;
+        left: auto !important;
+        right: 0 !important;
+        padding: 1.5rem 1.5rem 0 0;
+        width: 75vw;
+        visibility: hidden;
+        background-color: var(--color-background);
+        transform: translate(100%, 0);
+    }
+    html .col-sidebar > *:last-child {
+        padding-bottom: 20px;
+    }
+    html .overlay {
+        content: "";
+        display: block;
+        position: fixed;
+        z-index: 1023;
+        top: 0;
+        left: 0;
+        right: 0;
+        bottom: 0;
+        background-color: rgba(0, 0, 0, 0.75);
+        visibility: hidden;
+    }
+
+    .to-has-menu .overlay {
+        animation: fade-in 0.4s;
+    }
+
+    .to-has-menu .col-sidebar {
+        animation: pop-in-from-right 0.4s;
+    }
+
+    .from-has-menu .overlay {
+        animation: fade-out 0.4s;
+    }
+
+    .from-has-menu .col-sidebar {
+        animation: pop-out-to-right 0.4s;
+    }
+
+    .has-menu body {
+        overflow: hidden;
+    }
+    .has-menu .overlay {
+        visibility: visible;
+    }
+    .has-menu .col-sidebar {
+        visibility: visible;
+        transform: translate(0, 0);
+        display: flex;
+        flex-direction: column;
+        gap: 1.5rem;
+        max-height: 100vh;
+        padding: 1rem 2rem;
+    }
+    .has-menu .tsd-navigation {
+        max-height: 100%;
+    }
+    #tsd-toolbar-links {
+        display: none;
+    }
+    .tsd-navigation .tsd-nav-link {
+        display: flex;
+    }
+}
+
+/* one sidebar */
+@media (min-width: 770px) {
+    .container-main {
+        display: grid;
+        grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
+        grid-template-areas: "sidebar content";
+        margin: 2rem auto;
+    }
+
+    .col-sidebar {
+        grid-area: sidebar;
+    }
+    .col-content {
+        grid-area: content;
+        padding: 0 1rem;
+    }
+}
+@media (min-width: 770px) and (max-width: 1399px) {
+    .col-sidebar {
+        max-height: calc(100vh - 2rem - 42px);
+        overflow: auto;
+        position: sticky;
+        top: 42px;
+        padding-top: 1rem;
+    }
+    .site-menu {
+        margin-top: 1rem;
+    }
+}
+
+/* two sidebars */
+@media (min-width: 1200px) {
+    .container-main {
+        grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem);
+        grid-template-areas: "sidebar content toc";
+    }
+
+    .col-sidebar {
+        display: contents;
+    }
+
+    .page-menu {
+        grid-area: toc;
+        padding-left: 1rem;
+    }
+    .site-menu {
+        grid-area: sidebar;
+    }
+
+    .site-menu {
+        margin-top: 1rem 0;
+    }
+
+    .page-menu,
+    .site-menu {
+        max-height: calc(100vh - 2rem - 42px);
+        overflow: auto;
+        position: sticky;
+        top: 42px;
+    }
+}
diff --git a/docs/functions/ayaStringSplitter.html b/docs/functions/ayaStringSplitter.html
index 60ff2d5..ef10620 100644
--- a/docs/functions/ayaStringSplitter.html
+++ b/docs/functions/ayaStringSplitter.html
@@ -1,99 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ayaStringSplitter | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="ayaStringSplitter.html">ayaStringSplitter</a></li></ul>
-<h1>Function ayaStringSplitter</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="ayaStringSplitter">aya<wbr/>String<wbr/>Splitter<span class="tsd-signature-symbol">(</span>str<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">SurahAyahSegment</span><a href="#ayaStringSplitter" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Turns String of type &quot;x:y&quot; or &quot;x:y1-y2&quot; to array [x,y] or [x,[y1,y2]] respectively</p>
-
-<h3>Returns</h3><p>array [x,y] or [x,[y1,y2]] respectively</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>str: <span class="tsd-signature-type">string</span></h5>
-<div class="tsd-comment tsd-typography"><p>String of type &quot;x:y&quot; or &quot;x:y1-y2&quot;</p>
-</div></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">SurahAyahSegment</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/ayaStringSplitter.ts#L8">ayaStringSplitter.ts:8</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="current tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ayaStringSplitter | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="ayaStringSplitter.html">ayaStringSplitter</a></li></ul><h1>Function ayaStringSplitter</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="ayaStringSplitter" class="tsd-anchor"></a><span class="tsd-kind-call-signature">aya<wbr/>String<wbr/>Splitter</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">str</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyahSegment.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyahSegment</a><a href="#ayaStringSplitter" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Turns String of type &quot;x:y&quot; or &quot;x:y1-y2&quot; to array [x,y] or [x,[y1,y2]] respectively</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">str</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>String of type &quot;x:y&quot; or &quot;x:y1-y2&quot;</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyahSegment.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyahSegment</a></h4><p>array [x,y] or [x,[y1,y2]] respectively</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/ayaStringSplitter.ts#L9">ayaStringSplitter.ts:9</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/checkValidAyahId.html b/docs/functions/checkValidAyahId.html
new file mode 100644
index 0000000..43e0b57
--- /dev/null
+++ b/docs/functions/checkValidAyahId.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>checkValidAyahId | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="checkValidAyahId.html">checkValidAyahId</a></li></ul><h1>Function checkValidAyahId</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="checkValidAyahId" class="tsd-anchor"></a><span class="tsd-kind-call-signature">check<wbr/>Valid<wbr/>Ayah<wbr/>Id</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayahId</span>, <span class="tsd-kind-parameter">checkOnly</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#checkValidAyahId" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks if the given Ayah (verse) ID is valid.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayahId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) ID to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">checkOnly</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the function will only check the validity and not throw an error.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the Ayah ID is valid, otherwise throws a RangeError.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/validation.ts#L49">validation.ts:49</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/checkValidSurah.html b/docs/functions/checkValidSurah.html
new file mode 100644
index 0000000..f465733
--- /dev/null
+++ b/docs/functions/checkValidSurah.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>checkValidSurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="checkValidSurah.html">checkValidSurah</a></li></ul><h1>Function checkValidSurah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="checkValidSurah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">check<wbr/>Valid<wbr/>Surah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">checkOnly</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#checkValidSurah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks if the given Surah (chapter) number is valid.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">checkOnly</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the function will only check the validity and not throw an error.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the Surah number is valid, false otherwise.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/validation.ts#L11">validation.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/checkValidSurahAyah.html b/docs/functions/checkValidSurahAyah.html
new file mode 100644
index 0000000..f7990c8
--- /dev/null
+++ b/docs/functions/checkValidSurahAyah.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>checkValidSurahAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="checkValidSurahAyah.html">checkValidSurahAyah</a></li></ul><h1>Function checkValidSurahAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="checkValidSurahAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">check<wbr/>Valid<wbr/>Surah<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">checkOnly</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#checkValidSurahAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks if the given Surah and Ayah (verse) numbers are valid.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number to check.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">checkOnly</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the function will only check the validity and not throw an error.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><p>True if the Surah and Ayah numbers are valid, false otherwise.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/validation.ts#L32">validation.ts:32</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findAyaidBySurah.html b/docs/functions/findAyaidBySurah.html
index 4579d41..893b4c2 100644
--- a/docs/functions/findAyaidBySurah.html
+++ b/docs/functions/findAyaidBySurah.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findAyaidBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findAyaidBySurah.html">findAyaidBySurah</a></li></ul>
-<h1>Function findAyaidBySurah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findAyaidBySurah">find<wbr/>Ayaid<wbr/>By<wbr/>Surah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><a href="#findAyaidBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L322">index.ts:322</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="current tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findAyaidBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findAyaidBySurah.html">findAyaidBySurah</a></li></ul><h1>Function findAyaidBySurah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findAyaidBySurah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Ayaid<wbr/>By<wbr/>Surah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><a href="#findAyaidBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the ayah ID for the given surah and ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number within the surah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a></h4><p>The ayah ID for the given surah and ayah number.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findAyaidBySurah.ts#L11">findAyaidBySurah.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuz.html b/docs/functions/findJuz.html
index 019f220..35a9aea 100644
--- a/docs/functions/findJuz.html
+++ b/docs/functions/findJuz.html
@@ -1,97 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuz.html">findJuz</a></li></ul>
-<h1>Function findJuz</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuz">find<wbr/>Juz<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#findJuz" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L175">index.ts:175</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="current tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuz.html">findJuz</a></li></ul><h1>Function findJuz</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuz" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">?</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#findJuz" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number. Defaults to 1 if not provided.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an Ayah ID instead of a Surah and Ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The Juz (part) number that the given Ayah belongs to.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuz.ts#L14">findJuz.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzAndShift.html b/docs/functions/findJuzAndShift.html
index 8d3ab9c..5299ae8 100644
--- a/docs/functions/findJuzAndShift.html
+++ b/docs/functions/findJuzAndShift.html
@@ -1,107 +1,11 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzAndShift | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzAndShift.html">findJuzAndShift</a></li></ul>
-<h1>Function findJuzAndShift</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzAndShift">find<wbr/>Juz<wbr/>And<wbr/>Shift<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span>ayahsBetweenJuzSurah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>juz<span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftAyahId<span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><a href="#findJuzAndShift" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Find juz containing ayah</p>
-
-<h3>Returns</h3></div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span><br/><span>    </span>ayahsBetweenJuzSurah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>juz<span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftAyahId<span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h4>
-<ul class="tsd-parameters">
-<li class="tsd-parameter">
-<h5>ayahs<wbr/>Between<wbr/>Juz<wbr/>Surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li>
-<li class="tsd-parameter">
-<h5>juz<span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h5></li>
-<li class="tsd-parameter">
-<h5>left<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h5></li></ul><aside class="tsd-sources">
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzAndShift | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzAndShift.html">findJuzAndShift</a></li></ul><h1>Function findJuzAndShift</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzAndShift" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>And<wbr/>Shift</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">ayahsBetweenJuzSurah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftAyahId</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span><a href="#findJuzAndShift" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah (chapter) that contains the ayah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah (verse) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>A boolean flag indicating whether the <code>ayah</code> parameter represents an ayah number or an ayah ID.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">ayahsBetweenJuzSurah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftAyahId</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></h4><p>An object containing the following properties:</p>
 <ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L241">index.ts:241</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="current tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<li><code>juz</code>: The juz (section) that contains the ayah.</li>
+<li><code>leftAyahId</code>: The ayah ID of the first ayah in the juz.</li>
+<li><code>ayahsBetweenJuzSurah</code>: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).</li>
+</ul>
+<ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-kind-property">ayahs<wbr/>Between<wbr/>Juz<wbr/>Surah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h5></li><li class="tsd-parameter"><h5><span class="tsd-kind-property">left<wbr/>Ayah<wbr/>Id</span><span class="tsd-signature-symbol">: </span><a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a></h5></li></ul><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzAndShift.ts#L20">findJuzAndShift.ts:20</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzByAyaid.html b/docs/functions/findJuzByAyaid.html
index be5564f..b0bc85d 100644
--- a/docs/functions/findJuzByAyaid.html
+++ b/docs/functions/findJuzByAyaid.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzByAyaid.html">findJuzByAyaid</a></li></ul>
-<h1>Function findJuzByAyaid</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzByAyaid">find<wbr/>Juz<wbr/>By<wbr/>Ayaid<span class="tsd-signature-symbol">(</span>ayaId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#findJuzByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L153">index.ts:153</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="current tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzByAyaid.html">findJuzByAyaid</a></li></ul><h1>Function findJuzByAyaid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzByAyaid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>By<wbr/>Ayaid</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayaId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#findJuzByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayaId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ID of the Ayah (verse) to find the Juz for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The Juz (part) of the Quran that contains the given Ayah ID.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzByAyaid.ts#L11">findJuzByAyaid.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzHizb.html b/docs/functions/findJuzHizb.html
index d73de07..c926937 100644
--- a/docs/functions/findJuzHizb.html
+++ b/docs/functions/findJuzHizb.html
@@ -1,97 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizb | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzHizb.html">findJuzHizb</a></li></ul>
-<h1>Function findJuzHizb</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzHizb">find<wbr/>Juz<wbr/>Hizb<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">JuzHizb</span><a href="#findJuzHizb" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">JuzHizb</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L187">index.ts:187</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="current tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizb | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzHizb.html">findJuzHizb</a></li></ul><h1>Function findJuzHizb</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzHizb" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>Hizb</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">?</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a><a href="#findJuzHizb" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number. Defaults to 1 if not provided.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an Ayah ID instead of a Surah and Ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a></h4><p>An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzHizb.ts#L14">findJuzHizb.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzHizbByAyaid.html b/docs/functions/findJuzHizbByAyaid.html
index b8e8e67..b6cf81e 100644
--- a/docs/functions/findJuzHizbByAyaid.html
+++ b/docs/functions/findJuzHizbByAyaid.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizbByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzHizbByAyaid.html">findJuzHizbByAyaid</a></li></ul>
-<h1>Function findJuzHizbByAyaid</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzHizbByAyaid">find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid<span class="tsd-signature-symbol">(</span>ayaId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">JuzHizb</span><a href="#findJuzHizbByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">JuzHizb</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L162">index.ts:162</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="current tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzHizbByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzHizbByAyaid.html">findJuzHizbByAyaid</a></li></ul><h1>Function findJuzHizbByAyaid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzHizbByAyaid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayaId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a><a href="#findJuzHizbByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayaId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah ID to find the Juz, Hizb, and Hizb ID for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/JuzHizb.html" class="tsd-signature-type tsd-kind-type-alias">JuzHizb</a></h4><p>An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzHizbByAyaid.ts#L12">findJuzHizbByAyaid.ts:12</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findJuzMetaBySurah.html b/docs/functions/findJuzMetaBySurah.html
index 9ce7d13..b3c8eac 100644
--- a/docs/functions/findJuzMetaBySurah.html
+++ b/docs/functions/findJuzMetaBySurah.html
@@ -1,99 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzMetaBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findJuzMetaBySurah.html">findJuzMetaBySurah</a></li></ul>
-<h1>Function findJuzMetaBySurah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findJuzMetaBySurah">find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">JuzMeta</a><a href="#findJuzMetaBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah</p>
-
-<h3>Returns</h3><p>[leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/JuzMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">JuzMeta</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L272">index.ts:272</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="current tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findJuzMetaBySurah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findJuzMetaBySurah.html">findJuzMetaBySurah</a></li></ul><h1>Function findJuzMetaBySurah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findJuzMetaBySurah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/JuzMeta.html" class="tsd-signature-type tsd-kind-type-alias">JuzMeta</a><a href="#findJuzMetaBySurah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the JuzMeta for a given Surah and Ayah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span><span class="tsd-signature-symbol"> = 1</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/JuzMeta.html" class="tsd-signature-type tsd-kind-type-alias">JuzMeta</a></h4><p>The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findJuzMetaBySurah.ts#L14">findJuzMetaBySurah.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findPage.html b/docs/functions/findPage.html
index 52aef2f..66d5731 100644
--- a/docs/functions/findPage.html
+++ b/docs/functions/findPage.html
@@ -1,97 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findPage | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findPage.html">findPage</a></li></ul>
-<h1>Function findPage</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findPage">find<wbr/>Page<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a><a href="#findPage" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L309">index.ts:309</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="current tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findPage | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findPage.html">findPage</a></li></ul><h1>Function findPage</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findPage" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Page</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a><a href="#findPage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the page number for the given Surah and Ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah to find the page for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah number to find the page for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an AyahId instead of an AyahNo.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a></h4><p>The page number for the given Surah and Ayah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findPage.ts#L14">findPage.ts:14</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findRangeAroundAyah.html b/docs/functions/findRangeAroundAyah.html
index 687435a..68e2142 100644
--- a/docs/functions/findRangeAroundAyah.html
+++ b/docs/functions/findRangeAroundAyah.html
@@ -1,104 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findRangeAroundAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findRangeAroundAyah.html">findRangeAroundAyah</a></li></ul>
-<h1>Function findRangeAroundAyah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findRangeAroundAyah">find<wbr/>Range<wbr/>Around<wbr/>Ayah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, mode<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">&quot;surah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;juz&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;ayah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;page&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;all&quot;</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#findRangeAroundAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Find range containing ayah according to the mode</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>mode: <span class="tsd-signature-type">&quot;surah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;juz&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;ayah&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;page&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;all&quot;</span></h5>
-<div class="tsd-comment tsd-typography"><p>can be either &#39;all&#39;, &#39;juz&#39;, &#39;surah&#39;, &#39;ayah&#39;, &#39;page&#39;
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findRangeAroundAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findRangeAroundAyah.html">findRangeAroundAyah</a></li></ul><h1>Function findRangeAroundAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findRangeAroundAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Range<wbr/>Around<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">mode</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#findRangeAroundAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Find range containing ayah according to the mode</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">mode</span>: <br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;all&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;page&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;juz&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;surah&quot;</span><br/><span>    </span><span class="tsd-signature-symbol">| </span><span class="tsd-signature-type">&quot;ayah&quot;</span></span><div class="tsd-comment tsd-typography"><p>can be either 'all', 'juz', 'surah', 'ayah', 'page'
 default is all</p>
-</div></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L413">index.ts:413</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="current tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findRangeAroundAyah.ts#L42">findRangeAroundAyah.ts:42</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/findSurahByAyaid.html b/docs/functions/findSurahByAyaid.html
index 66b483d..daa715e 100644
--- a/docs/functions/findSurahByAyaid.html
+++ b/docs/functions/findSurahByAyaid.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findSurahByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="findSurahByAyaid.html">findSurahByAyaid</a></li></ul>
-<h1>Function findSurahByAyaid</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="findSurahByAyaid">find<wbr/>Surah<wbr/>By<wbr/>Ayaid<span class="tsd-signature-symbol">(</span>ayaId<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#findSurahByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>ayaId: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L140">index.ts:140</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="current tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>findSurahByAyaid | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="findSurahByAyaid.html">findSurahByAyaid</a></li></ul><h1>Function findSurahByAyaid</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="findSurahByAyaid" class="tsd-anchor"></a><span class="tsd-kind-call-signature">find<wbr/>Surah<wbr/>By<wbr/>Ayaid</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">ayaId</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#findSurahByAyaid" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">ayaId</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah ID to find the Surah and Ayah numbers for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><p>An array containing the Surah number and the Ayah number within that Surah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/findSurahByAyaid.ts#L11">findSurahByAyaid.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/getAyaCountinSura.html b/docs/functions/getAyaCountinSura.html
index cebf90c..117eab0 100644
--- a/docs/functions/getAyaCountinSura.html
+++ b/docs/functions/getAyaCountinSura.html
@@ -1,93 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getAyaCountinSura | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="getAyaCountinSura.html">getAyaCountinSura</a></li></ul>
-<h1>Function getAyaCountinSura</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="getAyaCountinSura">get<wbr/>Aya<wbr/>Countin<wbr/>Sura<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><a href="#getAyaCountinSura" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L331">index.ts:331</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="current tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getAyaCountinSura | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="getAyaCountinSura.html">getAyaCountinSura</a></li></ul><h1>Function getAyaCountinSura</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getAyaCountinSura" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Aya<wbr/>Countin<wbr/>Sura</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><a href="#getAyaCountinSura" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the number of ayahs (verses) in the specified surah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">number</span></h4><p>The number of ayahs in the specified surah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/getAyaCountinSura.ts#L9">getAyaCountinSura.ts:9</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/getSurahMeta.html b/docs/functions/getSurahMeta.html
index 5cbb19c..01eb0fc 100644
--- a/docs/functions/getSurahMeta.html
+++ b/docs/functions/getSurahMeta.html
@@ -1,95 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getSurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="getSurahMeta.html">getSurahMeta</a></li></ul>
-<h1>Function getSurahMeta</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="getSurahMeta">get<wbr/>Surah<wbr/>Meta<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a><a href="#getSurahMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Get Surah meta</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L299">index.ts:299</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="current tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>getSurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="getSurahMeta.html">getSurahMeta</a></li></ul><h1>Function getSurahMeta</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getSurahMeta" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Surah<wbr/>Meta</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahMeta.html" class="tsd-signature-type tsd-kind-type-alias">SurahMeta</a><a href="#getSurahMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Gets the metadata for the specified Surah.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah to get the metadata for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahMeta.html" class="tsd-signature-type tsd-kind-type-alias">SurahMeta</a></h4><p>The metadata for the specified Surah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/getSurahMeta.ts#L11">getSurahMeta.ts:11</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/isAyahJuzFirst.html b/docs/functions/isAyahJuzFirst.html
index 9981eb3..3913588 100644
--- a/docs/functions/isAyahJuzFirst.html
+++ b/docs/functions/isAyahJuzFirst.html
@@ -1,99 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahJuzFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="isAyahJuzFirst.html">isAyahJuzFirst</a></li></ul>
-<h1>Function isAyahJuzFirst</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="isAyahJuzFirst">is<wbr/>Ayah<wbr/>Juz<wbr/>First<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#isAyahJuzFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Returns Positive number if aya is first ayah of juz, number is juz number</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L203">index.ts:203</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="current tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahJuzFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="isAyahJuzFirst.html">isAyahJuzFirst</a></li></ul><h1>Function isAyahJuzFirst</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isAyahJuzFirst" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Ayah<wbr/>Juz<wbr/>First</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#isAyahJuzFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the Juz (part) number that the given Ayah (verse) belongs to.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Surah (chapter) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The Ayah (verse) number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>If true, the <code>ayah</code> parameter is treated as an Ayah ID instead of a Surah and Ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/isAyahJuzFirst.ts#L16">isAyahJuzFirst.ts:16</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/isAyahPageFirst.html b/docs/functions/isAyahPageFirst.html
index 63d5498..f8c9a56 100644
--- a/docs/functions/isAyahPageFirst.html
+++ b/docs/functions/isAyahPageFirst.html
@@ -1,99 +1,6 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahPageFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="isAyahPageFirst.html">isAyahPageFirst</a></li></ul>
-<h1>Function isAyahPageFirst</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="isAyahPageFirst">is<wbr/>Ayah<wbr/>Page<wbr/>First<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayahMode<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><a href="#isAyahPageFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Returns Positive number if aya is first ayah of juz, number is juz number</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayahMode: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L221">index.ts:221</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="current tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>isAyahPageFirst | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="isAyahPageFirst.html">isAyahPageFirst</a></li></ul><h1>Function isAyahPageFirst</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="isAyahPageFirst" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Ayah<wbr/>Page<wbr/>First</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span>, <span class="tsd-kind-parameter">ayahMode</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><a href="#isAyahPageFirst" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Determines if the given ayah is the first ayah of a juz.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayahMode</span>: <span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol"> = false</span></span><div class="tsd-comment tsd-typography"><p>Optional flag to indicate if the ayah number is already a valid ayah ID.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a></h4><p>The juz number if the ayah is the first ayah of the juz, otherwise -1.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/isAyahPageFirst.ts#L15">isAyahPageFirst.ts:15</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/nextAyah.html b/docs/functions/nextAyah.html
index 331d300..21eb1d4 100644
--- a/docs/functions/nextAyah.html
+++ b/docs/functions/nextAyah.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>nextAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="nextAyah.html">nextAyah</a></li></ul>
-<h1>Function nextAyah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="nextAyah">next<wbr/>Ayah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#nextAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L340">index.ts:340</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="current tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>nextAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="nextAyah.html">nextAyah</a></li></ul><h1>Function nextAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="nextAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">next<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#nextAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the next ayah for the given surah and ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number within the surah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><p>The surah and ayah number of the next ayah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/nextAyah.ts#L12">nextAyah.ts:12</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/pageMeta-1.html b/docs/functions/pageMeta-1.html
index d685245..1469860 100644
--- a/docs/functions/pageMeta-1.html
+++ b/docs/functions/pageMeta-1.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>pageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="pageMeta-1.html">pageMeta</a></li></ul>
-<h1>Function pageMeta</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="pageMeta">page<wbr/>Meta<span class="tsd-signature-symbol">(</span>pageNum<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/PageMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">PageMeta</a><a href="#pageMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-comment tsd-typography"><p>Get the meta, first and last ayahs of the page</p>
-</div>
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>pageNum: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/PageMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">PageMeta</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L364">index.ts:364</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="current tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>pageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="pageMeta-1.html">pageMeta</a></li></ul><h1>Function pageMeta</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="pageMeta" class="tsd-anchor"></a><span class="tsd-kind-call-signature">page<wbr/>Meta</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">pageNum</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/PageMeta.html" class="tsd-signature-type tsd-kind-type-alias">PageMeta</a><a href="#pageMeta" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Retrieves the page metadata for the specified page number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">pageNum</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The page number to retrieve metadata for.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/PageMeta.html" class="tsd-signature-type tsd-kind-type-alias">PageMeta</a></h4><p>The page metadata, including the first and last ayah IDs on the page.</p>
+<div class="tsd-comment tsd-typography"><div class="tsd-tag-Throws"><h4 class="tsd-anchor-link"><a id="Throws" class="tsd-anchor"></a>Throws<a href="#Throws" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><p>If the page number is out of the valid range (1 to <code>meta.numPages</code>).</p>
+</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/pageMeta.ts#L13">pageMeta.ts:13</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/functions/prevAyah.html b/docs/functions/prevAyah.html
index 10d6744..28c2ac3 100644
--- a/docs/functions/prevAyah.html
+++ b/docs/functions/prevAyah.html
@@ -1,95 +1,5 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>prevAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="prevAyah.html">prevAyah</a></li></ul>
-<h1>Function prevAyah</h1></div>
-<section class="tsd-panel">
-<ul class="tsd-signatures tsd-kind-function">
-<li class="tsd-signature tsd-anchor-link" id="prevAyah">prev<wbr/>Ayah<span class="tsd-signature-symbol">(</span>surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span>, ayah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><a href="#prevAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none" id="icon-anchor-a"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" id="icon-anchor-b"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" id="icon-anchor-c"></path></svg></a></li>
-<li class="tsd-description">
-<div class="tsd-parameters">
-<h4 class="tsd-parameters-title">Parameters</h4>
-<ul class="tsd-parameter-list">
-<li>
-<h5>surah: <span class="tsd-signature-type">number</span></h5></li>
-<li>
-<h5>ayah: <span class="tsd-signature-type">number</span></h5></li></ul></div>
-<h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h4><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L353">index.ts:353</a></li></ul></aside></li></ul></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="current tsd-kind-function"><a href="prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>prevAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="prevAyah.html">prevAyah</a></li></ul><h1>Function prevAyah</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="prevAyah" class="tsd-anchor"></a><span class="tsd-kind-call-signature">prev<wbr/>Ayah</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">surah</span>, <span class="tsd-kind-parameter">ayah</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><a href="#prevAyah" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Get the previous ayah for the given surah and ayah number.</p>
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">surah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The surah number.</p>
+</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">ayah</span>: <span class="tsd-signature-type">number</span></span><div class="tsd-comment tsd-typography"><p>The ayah number within the surah.</p>
+</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../types/SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a></h4><p>The surah and ayah number of the previous ayah.</p>
+<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/prevAyah.ts#L13">prevAyah.ts:13</a></li></ul></aside></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/index.html b/docs/index.html
index 158fde5..c0132ba 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -1,26 +1,9 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base=".">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<h2>quran-meta</h2></div>
-<div class="tsd-panel tsd-typography">
-<a href="#welcome-to-quran-meta-project" id="welcome-to-quran-meta-project" style="color: inherit; text-decoration: none;">
-  <h2>Welcome to Quran Meta Project</h2>
-</a>
-<p>This project is to help with Quran related meta queries. </p>
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>quran-meta</h2></div><div class="tsd-panel tsd-typography"><a id="md:welcome-to-quran-meta-project" class="tsd-anchor"></a><h2 class="tsd-anchor-link">Welcome to Quran Meta Project<a href="#md:welcome-to-quran-meta-project" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2><p>This project is to help with Quran related meta queries.</p>
 <p>Answering Questions like:</p>
 <ul>
 <li>How many ayahs in given sura (<code>getAyaCountinSura</code>)</li>
-<li>Is given aya <ul>
+<li>Is given aya
+<ul>
 <li>a sajdah ayah?</li>
 <li>beginnning of a juz (<code>isAyahJuzFirst</code>)?</li>
 <li>beginnning of a page?</li>
@@ -31,53 +14,39 @@ <h2>Welcome to Quran Meta Project</h2>
 <li>Find next or previous ayah (<code>nextAyah</code>/<code>prevAyah</code>)</li>
 <li>converts <code>[surah,aya]</code> to <code>ayaId</code> and vice-verse ( <code>findSurahByAyaid</code> and  <code>findAyaidBySurah</code>)</li>
 </ul>
+<a id="md:installation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Installation<a href="#md:installation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>In a browser:</p>
+<pre><code class="html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">src</span><span class="hl-2">=</span><span class="hl-4">&quot;quran-meta.js&quot;</span><span class="hl-0">&gt;&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
+</code><button type="button">Copy</button></pre>
+
+<p>Also modern browsers allow</p>
+<pre><code class="html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">type</span><span class="hl-2">=</span><span class="hl-4">&quot;module&quot;</span><span class="hl-0">&gt;</span><br/><span class="hl-5">import</span><span class="hl-2"> </span><span class="hl-6">quranMeta</span><span class="hl-2"> </span><span class="hl-5">from</span><span class="hl-2"> </span><span class="hl-7">&quot;quran-meta.esm.js&quot;</span><br/><span class="hl-0">&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
+</code><button type="button">Copy</button></pre>
 
-<a href="#installation" id="installation" style="color: inherit; text-decoration: none;">
-  <h3>Installation</h3>
-</a>
-<p>In a browser:</p>
-<pre><code class="language-html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">src</span><span class="hl-2">=</span><span class="hl-4">&quot;quran-meta.js&quot;</span><span class="hl-0">&gt;&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
-</code></pre>
-<p>Also modern browsers allow </p>
-<pre><code class="language-html"><span class="hl-0">&lt;</span><span class="hl-1">script</span><span class="hl-2"> </span><span class="hl-3">type</span><span class="hl-2">=</span><span class="hl-4">&quot;module&quot;</span><span class="hl-0">&gt;</span><br/><span class="hl-5">import</span><span class="hl-2"> </span><span class="hl-6">quranMeta</span><span class="hl-2"> </span><span class="hl-5">from</span><span class="hl-2"> </span><span class="hl-7">&quot;quran-meta.esm.js&quot;</span><br/><span class="hl-0">&lt;/</span><span class="hl-1">script</span><span class="hl-0">&gt;</span>
-</code></pre>
 <p>The library is available from various CDNs</p>
 <ul>
-<li><a href="https://cdn.jsdelivr.net/npm/quran-meta/dist/">JSDelivr</a> </li>
-<li><a href="https://unpkg.com/browse/quran-meta/dist/">UnPKG</a></li>
+<li><a href="https://cdn.jsdelivr.net/npm/quran-meta/dist/" target="_blank" class="external">JSDelivr</a></li>
+<li><a href="https://unpkg.com/browse/quran-meta/dist/" target="_blank" class="external">UnPKG</a></li>
 </ul>
 <p>Using npm:</p>
 <pre><code><span class="hl-6">$</span><span class="hl-8"> </span><span class="hl-6">npm</span><span class="hl-8"> </span><span class="hl-6">i</span><span class="hl-8"> --</span><span class="hl-6">save</span><span class="hl-8"> </span><span class="hl-6">quran</span><span class="hl-8">-</span><span class="hl-6">meta</span>
-</code></pre>
-<p>In Node.js:</p>
-<pre><code class="language-js"><span class="hl-9">var</span><span class="hl-8"> </span><span class="hl-6">quranMeta</span><span class="hl-8"> = </span><span class="hl-10">require</span><span class="hl-8">(</span><span class="hl-7">&#39;quran-meta&#39;</span><span class="hl-8">);</span>
-</code></pre>
+</code><button>Copy</button></pre>
 
-<a href="#api-reference-documentation" id="api-reference-documentation" style="color: inherit; text-decoration: none;">
-  <h3>APi Reference Documentation</h3>
-</a>
-<p>See <a href="https://quran-center.github.io/quran-meta/docs/globals.html">here</a> for API documentation</p>
-
-<a href="#examples" id="examples" style="color: inherit; text-decoration: none;">
-  <h3>Examples</h3>
-</a>
-<p>You can find some examples <a href="https://quran-center.github.io/quran-meta/examples/">here</a> and souce code for them <a href="https://github.com/quran-center/quran-meta/tree/master/examples">here</a></p>
+<p>In Node.js:</p>
+<pre><code class="js"><span class="hl-9">var</span><span class="hl-8"> </span><span class="hl-6">quranMeta</span><span class="hl-8"> = </span><span class="hl-10">require</span><span class="hl-8">(</span><span class="hl-7">&#39;quran-meta&#39;</span><span class="hl-8">);</span>
+</code><button type="button">Copy</button></pre>
 
-<a href="#demo" id="demo" style="color: inherit; text-decoration: none;">
-  <h3>Demo</h3>
-</a>
-<ul>
-<li><p><a href="https://codesandbox.io/s/quran-visualiser-p3zjd">Quran Meta Visualiser</a> - demo app showcasing number of methods from Quran-meta to build interactive visualisations of Quran structure using Alpine.js &amp; chart.js</p>
+<a id="md:api-reference-documentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link">APi Reference Documentation<a href="#md:api-reference-documentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>See <a href="https://quran-center.github.io/quran-meta/docs/globals.html" target="_blank" class="external">here</a> for API documentation</p>
+<a id="md:examples" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Examples<a href="#md:examples" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>You can find some examples <a href="https://quran-center.github.io/quran-meta/examples/" target="_blank" class="external">here</a> and souce code for them <a href="https://github.com/quran-center/quran-meta/tree/master/examples" target="_blank" class="external">here</a></p>
+<a id="md:demo" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Demo<a href="#md:demo" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><ul>
+<li>
+<p><a href="https://codesandbox.io/s/quran-visualiser-p3zjd" target="_blank" class="external">Quran Meta Visualiser</a> - demo app showcasing number of methods from Quran-meta to build interactive visualisations of Quran structure using Alpine.js &amp; chart.js</p>
 </li>
-<li><p><a href="https://codesandbox.io/s/quran-visualiser-es-module-f0sq0">Quran Meta Visualiser ES module version</a> - ES Module version of the previous demo</p>
+<li>
+<p><a href="https://codesandbox.io/s/quran-visualiser-es-module-f0sq0" target="_blank" class="external">Quran Meta Visualiser ES module version</a> - ES Module version of the previous demo</p>
 </li>
 </ul>
 <p><img src="https://quran-center.github.io/quran-meta/examples/demo-quran-visualiser.jpg" alt="demo image"></p>
-
-<a href="#distributions-and-downloads" id="distributions-and-downloads" style="color: inherit; text-decoration: none;">
-  <h3>Distributions and Downloads</h3>
-</a>
-<p>Here you can find the following</p>
+<a id="md:distributions-and-downloads" class="tsd-anchor"></a><h3 class="tsd-anchor-link">Distributions and Downloads<a href="#md:distributions-and-downloads" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3><p>Here you can find the following</p>
 <table>
 <thead>
 <tr>
@@ -85,16 +54,17 @@ <h3>Distributions and Downloads</h3>
 <th></th>
 </tr>
 </thead>
-<tbody><tr>
-<td><a href="https://github.com/quran-center/quran-meta/tree/master/src">Source code</a> in typescript</td>
+<tbody>
+<tr>
+<td><a href="https://github.com/quran-center/quran-meta/tree/master/src" target="_blank" class="external">Source code</a> in typescript</td>
 <td>TS</td>
 </tr>
 <tr>
-<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_es">Javascript code</a> autotranspiled from TS as ES Next</td>
+<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_es" target="_blank" class="external">Javascript code</a> autotranspiled from TS as ES Next</td>
 <td>ESNext</td>
 </tr>
 <tr>
-<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_cjs">Javascript code</a> autotranspiled from TS as CJS</td>
+<td><a href="https://github.com/quran-center/quran-meta/tree/master/lib_cjs" target="_blank" class="external">Javascript code</a> autotranspiled from TS as CJS</td>
 <td>ES5+CommonJS</td>
 </tr>
 <tr>
@@ -102,88 +72,25 @@ <h3>Distributions and Downloads</h3>
 <td></td>
 </tr>
 <tr>
-<td><strong><a href="https://github.com/quran-center/quran-meta/tree/master/dist">distributions</a> of library as</strong></td>
+<td><strong><a href="https://github.com/quran-center/quran-meta/tree/master/dist" target="_blank" class="external">distributions</a> of library as</strong></td>
 <td></td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.js">UMD</a>/ <a href="https://quran-center.github.io/quran-meta/dist/quran-meta.min.js">UMD minified</a> builds can be used directly in the browser via a <code>&lt;script&gt;</code> (see  <a href="https://www.syntaxsuccess.com/viewarticle/iife-vs-umd">here</a> about UMD format)</td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.js" target="_blank" class="external">UMD</a>/ <a href="https://quran-center.github.io/quran-meta/dist/quran-meta.min.js" target="_blank" class="external">UMD minified</a> builds can be used directly in the browser via a <code>&lt;script&gt;</code> (see  <a href="https://www.syntaxsuccess.com/viewarticle/iife-vs-umd" target="_blank" class="external">here</a> about UMD format)</td>
 <td>ES5+UMD</td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.common.js">CommonJS</a> for use with older bundlers like browserify or webpack</td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.common.js" target="_blank" class="external">CommonJS</a> for use with older bundlers like browserify or webpack</td>
 <td>ES5+CommonJS</td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.js">ESM</a> for use with modern bundlers like webpack 2 or Rollup</td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.js" target="_blank" class="external">ESM</a> for use with modern bundlers like webpack 2 or Rollup</td>
 <td>ES5+ESM</td>
 </tr>
 <tr>
-<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.js">ESM Browser</a>/<a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.min.js">ESM Browser minified</a> for direct imports in modern browsers via <code>&lt;script type=&quot;module&quot;&gt;</code></td>
+<td><a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.js" target="_blank" class="external">ESM Browser</a>/<a href="https://quran-center.github.io/quran-meta/dist/quran-meta.esm.browser.min.js" target="_blank" class="external">ESM Browser minified</a> for direct imports in modern browsers via <code>&lt;script type=&quot;module&quot;&gt;</code></td>
 <td>ESNext+ESM</td>
 </tr>
-</tbody></table>
-</div></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li class="current selected"><a href="modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="assets/main.js"></script></body></html>
\ No newline at end of file
+</tbody>
+</table>
+</div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#md:welcome-to-quran-meta-project"><span>Welcome to <wbr/>Quran <wbr/>Meta <wbr/>Project</span></a><ul><li><a href="#md:installation"><span>Installation</span></a></li><li><a href="#md:api-reference-documentation"><span>APi <wbr/>Reference <wbr/>Documentation</span></a></li><li><a href="#md:examples"><span>Examples</span></a></li><li><a href="#md:demo"><span>Demo</span></a></li><li><a href="#md:distributions-and-downloads"><span>Distributions and <wbr/>Downloads</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/modules.html b/docs/modules.html
index af431f2..479ae2c 100644
--- a/docs/modules.html
+++ b/docs/modules.html
@@ -1,128 +1,47 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script async src="assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base=".">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<h2>quran-meta</h2></div>
-<section class="tsd-panel-group tsd-index-group">
-<section class="tsd-panel tsd-index-panel">
-<h3 class="tsd-index-heading uppercase">Index</h3>
-<section class="tsd-index-section">
-<h3 class="tsd-index-heading">Type Aliases</h3>
-<div class="tsd-index-list"><a href="types/AyahId.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg><span>Ayah<wbr/>Id</span></a>
-<a href="types/AyahNo.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Ayah<wbr/>No</span></a>
-<a href="types/Juz.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Juz</span></a>
-<a href="types/JuzMeta.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Juz<wbr/>Meta</span></a>
-<a href="types/Page.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Page</span></a>
-<a href="types/PageMeta.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Page<wbr/>Meta</span></a>
-<a href="types/Sajda.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Sajda</span></a>
-<a href="types/Surah.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Surah</span></a>
-<a href="types/SurahAyah.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Surah<wbr/>Ayah</span></a>
-<a href="types/SurahMeta.html" class="tsd-index-link tsd-kind-type-alias"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg><span>Surah<wbr/>Meta</span></a>
-</div></section>
-<section class="tsd-index-section">
-<h3 class="tsd-index-heading">Variables</h3>
-<div class="tsd-index-list"><a href="variables/HizbQuarterList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg><span>Hizb<wbr/>Quarter<wbr/>List</span></a>
-<a href="variables/JuzList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Juz<wbr/>List</span></a>
-<a href="variables/ManzilList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Manzil<wbr/>List</span></a>
-<a href="variables/PageList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Page<wbr/>List</span></a>
-<a href="variables/RukuList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Ruku<wbr/>List</span></a>
-<a href="variables/SajdaList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Sajda<wbr/>List</span></a>
-<a href="variables/SuraList.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>Sura<wbr/>List</span></a>
-<a href="variables/meta.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>meta</span></a>
-<a href="variables/suraNamesEn.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>sura<wbr/>Names<wbr/>En</span></a>
-<a href="variables/suraNamesRu.html" class="tsd-index-link tsd-kind-variable"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg><span>sura<wbr/>Names<wbr/>Ru</span></a>
-</div></section>
-<section class="tsd-index-section">
-<h3 class="tsd-index-heading">Functions</h3>
-<div class="tsd-index-list"><a href="functions/ayaStringSplitter.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg><span>aya<wbr/>String<wbr/>Splitter</span></a>
-<a href="functions/findAyaidBySurah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</span></a>
-<a href="functions/findJuz.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz</span></a>
-<a href="functions/findJuzAndShift.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>And<wbr/>Shift</span></a>
-<a href="functions/findJuzByAyaid.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</span></a>
-<a href="functions/findJuzHizb.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>Hizb</span></a>
-<a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</span></a>
-<a href="functions/findJuzMetaBySurah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</span></a>
-<a href="functions/findPage.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Page</span></a>
-<a href="functions/findRangeAroundAyah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Range<wbr/>Around<wbr/>Ayah</span></a>
-<a href="functions/findSurahByAyaid.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</span></a>
-<a href="functions/getAyaCountinSura.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</span></a>
-<a href="functions/getSurahMeta.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>get<wbr/>Surah<wbr/>Meta</span></a>
-<a href="functions/isAyahJuzFirst.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>is<wbr/>Ayah<wbr/>Juz<wbr/>First</span></a>
-<a href="functions/isAyahPageFirst.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>is<wbr/>Ayah<wbr/>Page<wbr/>First</span></a>
-<a href="functions/nextAyah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>next<wbr/>Ayah</span></a>
-<a href="functions/pageMeta-1.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>page<wbr/>Meta</span></a>
-<a href="functions/prevAyah.html" class="tsd-index-link tsd-kind-function"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg><span>prev<wbr/>Ayah</span></a>
-</div></section></section></section></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li class="current selected"><a href="modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base="."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h2>quran-meta</h2></div><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><h3 class="tsd-index-heading uppercase">Index</h3><section class="tsd-index-section"><h3 class="tsd-index-heading">Type Aliases</h3><div class="tsd-index-list"><a href="types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Ayah<wbr/>Id</span></a>
+<a href="types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Ayah<wbr/>No</span></a>
+<a href="types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Juz</span></a>
+<a href="types/JuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Juz<wbr/>Hizb</span></a>
+<a href="types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Juz<wbr/>Meta</span></a>
+<a href="types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Page</span></a>
+<a href="types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Page<wbr/>Meta</span></a>
+<a href="types/QuranMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Quran<wbr/>Meta</span></a>
+<a href="types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Sajda</span></a>
+<a href="types/SajdaType.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Sajda<wbr/>Type</span></a>
+<a href="types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah</span></a>
+<a href="types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah<wbr/>Ayah</span></a>
+<a href="types/SurahAyahSegment.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah<wbr/>Ayah<wbr/>Segment</span></a>
+<a href="types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Surah<wbr/>Meta</span></a>
+<a href="types/SuraName.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-2097152"></use></svg><span>Sura<wbr/>Name</span></a>
+</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Variables</h3><div class="tsd-index-list"><a href="variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Hizb<wbr/>Quarter<wbr/>List</span></a>
+<a href="variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Juz<wbr/>List</span></a>
+<a href="variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Manzil<wbr/>List</span></a>
+<a href="variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>meta</span></a>
+<a href="variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Page<wbr/>List</span></a>
+<a href="variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Ruku<wbr/>List</span></a>
+<a href="variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Sajda<wbr/>List</span></a>
+<a href="variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>Sura<wbr/>List</span></a>
+<a href="variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>sura<wbr/>Names<wbr/>En</span></a>
+<a href="variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-32"></use></svg><span>sura<wbr/>Names<wbr/>Ru</span></a>
+</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Functions</h3><div class="tsd-index-list"><a href="functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>aya<wbr/>String<wbr/>Splitter</span></a>
+<a href="functions/checkValidAyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>check<wbr/>Valid<wbr/>Ayah<wbr/>Id</span></a>
+<a href="functions/checkValidSurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>check<wbr/>Valid<wbr/>Surah</span></a>
+<a href="functions/checkValidSurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>check<wbr/>Valid<wbr/>Surah<wbr/>Ayah</span></a>
+<a href="functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</span></a>
+<a href="functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz</span></a>
+<a href="functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>And<wbr/>Shift</span></a>
+<a href="functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</span></a>
+<a href="functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>Hizb</span></a>
+<a href="functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</span></a>
+<a href="functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</span></a>
+<a href="functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Page</span></a>
+<a href="functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Range<wbr/>Around<wbr/>Ayah</span></a>
+<a href="functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</span></a>
+<a href="functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</span></a>
+<a href="functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>get<wbr/>Surah<wbr/>Meta</span></a>
+<a href="functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>Ayah<wbr/>Juz<wbr/>First</span></a>
+<a href="functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>is<wbr/>Ayah<wbr/>Page<wbr/>First</span></a>
+<a href="functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>next<wbr/>Ayah</span></a>
+<a href="functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>page<wbr/>Meta</span></a>
+<a href="functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-64"></use></svg><span>prev<wbr/>Ayah</span></a>
+</div></section></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html" class="current"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base="."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/AyahId.html b/docs/types/AyahId.html
index 54fe360..cf3ac27 100644
--- a/docs/types/AyahId.html
+++ b/docs/types/AyahId.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahId | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="AyahId.html">AyahId</a></li></ul>
-<h1>Type alias AyahId</h1></div>
-<div class="tsd-signature">Ayah<wbr/>Id<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L4">types.ts:4</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="current tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahId | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="AyahId.html">AyahId</a></li></ul><h1>Type Alias AyahId</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Ayah<wbr/>Id</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L4">types.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/AyahNo.html b/docs/types/AyahNo.html
index d5f1eee..7d95c4a 100644
--- a/docs/types/AyahNo.html
+++ b/docs/types/AyahNo.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahNo | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="AyahNo.html">AyahNo</a></li></ul>
-<h1>Type alias AyahNo</h1></div>
-<div class="tsd-signature">Ayah<wbr/>No<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L3">types.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="current tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AyahNo | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="AyahNo.html">AyahNo</a></li></ul><h1>Type Alias AyahNo</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Ayah<wbr/>No</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L3">types.ts:3</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Juz.html b/docs/types/Juz.html
index 54945b1..5a0f7de 100644
--- a/docs/types/Juz.html
+++ b/docs/types/Juz.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Juz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Juz.html">Juz</a></li></ul>
-<h1>Type alias Juz</h1></div>
-<div class="tsd-signature">Juz<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L6">types.ts:6</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="current tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Juz | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Juz.html">Juz</a></li></ul><h1>Type Alias Juz</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Juz</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L6">types.ts:6</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/JuzHizb.html b/docs/types/JuzHizb.html
new file mode 100644
index 0000000..27b4d73
--- /dev/null
+++ b/docs/types/JuzHizb.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzHizb | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="JuzHizb.html">JuzHizb</a></li></ul><h1>Type Alias JuzHizb</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Juz<wbr/>Hizb</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">hizb</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">id</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">juz</span><span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L7">types.ts:7</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/JuzMeta.html b/docs/types/JuzMeta.html
index 4a7daae..9ecd32e 100644
--- a/docs/types/JuzMeta.html
+++ b/docs/types/JuzMeta.html
@@ -1,97 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="JuzMeta.html">JuzMeta</a></li></ul>
-<h1>Type alias JuzMeta</h1></div>
-<div class="tsd-signature">Juz<wbr/>Meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span>ayahsBetweenJuzSurah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>leftjuz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>rightAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>rightJuz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div>
-<div class="tsd-type-declaration">
-<h4>Type declaration</h4>
-<ul class="tsd-parameters">
-<li class="tsd-parameter">
-<h5>ayahs<wbr/>Between<wbr/>Juz<wbr/>Surah<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span></h5></li>
-<li class="tsd-parameter">
-<h5>left<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h5></li>
-<li class="tsd-parameter">
-<h5>leftjuz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h5></li>
-<li class="tsd-parameter">
-<h5>right<wbr/>Ayah<wbr/>Id<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a></h5></li>
-<li class="tsd-parameter">
-<h5>right<wbr/>Juz<span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type" data-tsd-kind="Type alias">Juz</a></h5></li></ul></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L20">types.ts:20</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="current tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="JuzMeta.html">JuzMeta</a></li></ul><h1>Type Alias JuzMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Juz<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">ayahsBetweenJuzSurah</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftAyahId</span><span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">leftjuz</span><span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">rightAyahId</span><span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">rightJuz</span><span class="tsd-signature-symbol">: </span><a href="Juz.html" class="tsd-signature-type tsd-kind-type-alias">Juz</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L20">types.ts:20</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Page.html b/docs/types/Page.html
index 275b75d..f8a7418 100644
--- a/docs/types/Page.html
+++ b/docs/types/Page.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Page | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Page.html">Page</a></li></ul>
-<h1>Type alias Page</h1></div>
-<div class="tsd-signature">Page<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L5">types.ts:5</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="current tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Page | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Page.html">Page</a></li></ul><h1>Type Alias Page</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Page</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L5">types.ts:5</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/PageMeta.html b/docs/types/PageMeta.html
index cf03f83..48ed5e5 100644
--- a/docs/types/PageMeta.html
+++ b/docs/types/PageMeta.html
@@ -1,93 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="PageMeta.html">PageMeta</a></li></ul>
-<h1>Type alias PageMeta</h1></div>
-<div class="tsd-signature">Page<wbr/>Meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span>first<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>last<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span>pageNum<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div>
-<div class="tsd-type-declaration">
-<h4>Type declaration</h4>
-<ul class="tsd-parameters">
-<li class="tsd-parameter">
-<h5>first<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h5></li>
-<li class="tsd-parameter">
-<h5>last<span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahAyah</a></h5></li>
-<li class="tsd-parameter">
-<h5>page<wbr/>Num<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a></h5></li></ul></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L14">types.ts:14</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="current tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="PageMeta.html">PageMeta</a></li></ul><h1>Type Alias PageMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Page<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">first</span><span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">last</span><span class="tsd-signature-symbol">: </span><a href="SurahAyah.html" class="tsd-signature-type tsd-kind-type-alias">SurahAyah</a><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">pageNum</span><span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L14">types.ts:14</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/QuranMeta.html b/docs/types/QuranMeta.html
new file mode 100644
index 0000000..8867348
--- /dev/null
+++ b/docs/types/QuranMeta.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>QuranMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="QuranMeta.html">QuranMeta</a></li></ul><h1>Type Alias QuranMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Quran<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span><br/><span>    </span><span class="tsd-kind-property">manzilCount</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numAyas</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numJuzs</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numPages</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span>    </span><span class="tsd-kind-property">numSuras</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">; </span><br/><span class="tsd-signature-symbol">}</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/const.ts#L1">const.ts:1</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Sajda.html b/docs/types/Sajda.html
index bdf238e..595a375 100644
--- a/docs/types/Sajda.html
+++ b/docs/types/Sajda.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Sajda | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Sajda.html">Sajda</a></li></ul>
-<h1>Type alias Sajda</h1></div>
-<div class="tsd-signature">Sajda<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">SajdaType</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L29">types.ts:29</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="current tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Sajda | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Sajda.html">Sajda</a></li></ul><h1>Type Alias Sajda</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sajda</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">, </span><a href="SajdaType.html" class="tsd-signature-type tsd-kind-type-alias">SajdaType</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L29">types.ts:29</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SajdaType.html b/docs/types/SajdaType.html
new file mode 100644
index 0000000..ff96ab3
--- /dev/null
+++ b/docs/types/SajdaType.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SajdaType | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SajdaType.html">SajdaType</a></li></ul><h1>Type Alias SajdaType</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sajda<wbr/>Type</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">&quot;recommended&quot;</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">&quot;obligatory&quot;</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L28">types.ts:28</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SuraName.html b/docs/types/SuraName.html
new file mode 100644
index 0000000..1032056
--- /dev/null
+++ b/docs/types/SuraName.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SuraName | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SuraName.html">SuraName</a></li></ul><h1>Type Alias SuraName</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Sura<wbr/>Name</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span>translitName<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L40">types.ts:40</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/Surah.html b/docs/types/Surah.html
index 04497bf..de512f6 100644
--- a/docs/types/Surah.html
+++ b/docs/types/Surah.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Surah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="Surah.html">Surah</a></li></ul>
-<h1>Type alias Surah</h1></div>
-<div class="tsd-signature">Surah<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L2">types.ts:2</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="current tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Surah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="Surah.html">Surah</a></li></ul><h1>Type Alias Surah</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L2">types.ts:2</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SurahAyah.html b/docs/types/SurahAyah.html
index 2fe2a47..b59a77e 100644
--- a/docs/types/SurahAyah.html
+++ b/docs/types/SurahAyah.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SurahAyah.html">SurahAyah</a></li></ul>
-<h1>Type alias SurahAyah</h1></div>
-<div class="tsd-signature">Surah<wbr/>Ayah<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="Surah.html" class="tsd-signature-type" data-tsd-kind="Type alias">Surah</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahNo</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L12">types.ts:12</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="current tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahAyah | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SurahAyah.html">SurahAyah</a></li></ul><h1>Type Alias SurahAyah</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah<wbr/>Ayah</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="Surah.html" class="tsd-signature-type tsd-kind-type-alias">Surah</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L12">types.ts:12</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SurahAyahSegment.html b/docs/types/SurahAyahSegment.html
new file mode 100644
index 0000000..bdd7ceb
--- /dev/null
+++ b/docs/types/SurahAyahSegment.html
@@ -0,0 +1 @@
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahAyahSegment | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SurahAyahSegment.html">SurahAyahSegment</a></li></ul><h1>Type Alias SurahAyahSegment</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah<wbr/>Ayah<wbr/>Segment</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span><a href="Surah.html" class="tsd-signature-type tsd-kind-type-alias">Surah</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol">, </span><a href="AyahNo.html" class="tsd-signature-type tsd-kind-type-alias">AyahNo</a><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L13">types.ts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/types/SurahMeta.html b/docs/types/SurahMeta.html
index 939b82e..4196e30 100644
--- a/docs/types/SurahMeta.html
+++ b/docs/types/SurahMeta.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SurahMeta.html">SurahMeta</a></li></ul>
-<h1>Type alias SurahMeta</h1></div>
-<div class="tsd-signature">Surah<wbr/>Meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>startAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">, </span>ayahCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>surahOrder<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>rukuCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span>isMeccan<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">, </span>page<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type" data-tsd-kind="Type alias">Page</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/types.ts#L31">types.ts:31</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="current tsd-kind-type-alias"><a href="SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="../variables/meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="../variables/suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SurahMeta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SurahMeta.html">SurahMeta</a></li></ul><h1>Type Alias SurahMeta</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">Surah<wbr/>Meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">[</span>startAyahId<span class="tsd-signature-symbol">: </span><a href="AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">, </span>ayahCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>surahOrder<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>rukuCount<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">number</span><span class="tsd-signature-symbol">, </span>name<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span>isMeccan<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">, </span>page<span class="tsd-signature-symbol">: </span><a href="Page.html" class="tsd-signature-type tsd-kind-type-alias">Page</a><span class="tsd-signature-symbol">]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/types.ts#L31">types.ts:31</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/HizbQuarterList.html b/docs/variables/HizbQuarterList.html
index 5d9ff31..45f94e7 100644
--- a/docs/variables/HizbQuarterList.html
+++ b/docs/variables/HizbQuarterList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>HizbQuarterList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="HizbQuarterList.html">HizbQuarterList</a></li></ul>
-<h1>Variable HizbQuarterList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Hizb<wbr/>Quarter<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/hizbList.ts#L3">hizbList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="current tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>HizbQuarterList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="HizbQuarterList.html">HizbQuarterList</a></li></ul><h1>Variable HizbQuarterList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Hizb<wbr/>Quarter<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/hizbList.ts#L4">lists/hizbList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/JuzList.html b/docs/variables/JuzList.html
index 6b00b0a..ebf488d 100644
--- a/docs/variables/JuzList.html
+++ b/docs/variables/JuzList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="JuzList.html">JuzList</a></li></ul>
-<h1>Variable JuzList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Juz<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L38">index.ts:38</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>JuzList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="JuzList.html">JuzList</a></li></ul><h1>Variable JuzList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Juz<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/juzList.ts#L4">lists/juzList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/ManzilList.html b/docs/variables/ManzilList.html
index 934b778..dd594fc 100644
--- a/docs/variables/ManzilList.html
+++ b/docs/variables/ManzilList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ManzilList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="ManzilList.html">ManzilList</a></li></ul>
-<h1>Variable ManzilList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Manzil<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L49">index.ts:49</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ManzilList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="ManzilList.html">ManzilList</a></li></ul><h1>Variable ManzilList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Manzil<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/manzilList.ts#L4">lists/manzilList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/PageList.html b/docs/variables/PageList.html
index fdcbbad..da2d563 100644
--- a/docs/variables/PageList.html
+++ b/docs/variables/PageList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="PageList.html">PageList</a></li></ul>
-<h1>Variable PageList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Page<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/pageList.ts#L3">pageList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PageList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="PageList.html">PageList</a></li></ul><h1>Variable PageList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Page<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/pageList.ts#L3">lists/pageList.ts:3</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/RukuList.html b/docs/variables/RukuList.html
index db066d7..c30933c 100644
--- a/docs/variables/RukuList.html
+++ b/docs/variables/RukuList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RukuList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="RukuList.html">RukuList</a></li></ul>
-<h1>Variable RukuList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Ruku<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type" data-tsd-kind="Type alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/rukuList.ts#L3">rukuList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>RukuList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="RukuList.html">RukuList</a></li></ul><h1>Variable RukuList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Ruku<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/AyahId.html" class="tsd-signature-type tsd-kind-type-alias">AyahId</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/rukuList.ts#L4">lists/rukuList.ts:4</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/SajdaList.html b/docs/variables/SajdaList.html
index 68700c5..7ef65de 100644
--- a/docs/variables/SajdaList.html
+++ b/docs/variables/SajdaList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SajdaList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SajdaList.html">SajdaList</a></li></ul>
-<h1>Variable SajdaList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Sajda<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/Sajda.html" class="tsd-signature-type" data-tsd-kind="Type alias">Sajda</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/index.ts#L69">index.ts:69</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SajdaList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SajdaList.html">SajdaList</a></li></ul><h1>Variable SajdaList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Sajda<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/Sajda.html" class="tsd-signature-type tsd-kind-type-alias">Sajda</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/sajdaList.ts#L13">lists/sajdaList.ts:13</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/SuraList.html b/docs/variables/SuraList.html
index b4ddddd..8c6f90b 100644
--- a/docs/variables/SuraList.html
+++ b/docs/variables/SuraList.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SuraList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="SuraList.html">SuraList</a></li></ul>
-<h1>Variable SuraList<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">Sura<wbr/>List<span class="tsd-signature-symbol">:</span> <a href="../types/SurahMeta.html" class="tsd-signature-type" data-tsd-kind="Type alias">SurahMeta</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/surahList.ts#L3">surahList.ts:3</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>SuraList | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="SuraList.html">SuraList</a></li></ul><h1>Variable SuraList<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">Sura<wbr/>List</span><span class="tsd-signature-symbol">:</span> <a href="../types/SurahMeta.html" class="tsd-signature-type tsd-kind-type-alias">SurahMeta</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/lists/surahList.ts#L3">lists/surahList.ts:3</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/meta.html b/docs/variables/meta.html
index 30c4e98..0677403 100644
--- a/docs/variables/meta.html
+++ b/docs/variables/meta.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>meta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="meta.html">meta</a></li></ul>
-<h1>Variable meta<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">meta<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">QuranMeta</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/const.ts#L9">const.ts:9</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="current tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>meta | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="meta.html">meta</a></li></ul><h1>Variable meta<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">meta</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Readonly</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/QuranMeta.html" class="tsd-signature-type tsd-kind-type-alias">QuranMeta</a><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/const.ts#L9">const.ts:9</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/suraNamesEn.html b/docs/variables/suraNamesEn.html
index 7f8563b..9596362 100644
--- a/docs/variables/suraNamesEn.html
+++ b/docs/variables/suraNamesEn.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesEn | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="suraNamesEn.html">suraNamesEn</a></li></ul>
-<h1>Variable suraNamesEn<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">sura<wbr/>Names<wbr/>En<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">SuraName</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/i18n/sura.en.ts#L2">i18n/sura.en.ts:2</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="current tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesEn | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="suraNamesEn.html">suraNamesEn</a></li></ul><h1>Variable suraNamesEn<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">sura<wbr/>Names<wbr/>En</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><a href="../types/SuraName.html" class="tsd-signature-type tsd-kind-type-alias">SuraName</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/i18n/sura.en.ts#L2">i18n/sura.en.ts:2</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/docs/variables/suraNamesRu.html b/docs/variables/suraNamesRu.html
index 2850dd6..2e0e951 100644
--- a/docs/variables/suraNamesRu.html
+++ b/docs/variables/suraNamesRu.html
@@ -1,84 +1 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesRu | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os"</script><header class="tsd-page-toolbar">
-<div class="tsd-toolbar-contents container">
-<div class="table-cell" id="tsd-search" data-base="..">
-<div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M15.7824 13.833L12.6666 10.7177C12.5259 10.5771 12.3353 10.499 12.1353 10.499H11.6259C12.4884 9.39596 13.001 8.00859 13.001 6.49937C13.001 2.90909 10.0914 0 6.50048 0C2.90959 0 0 2.90909 0 6.49937C0 10.0896 2.90959 12.9987 6.50048 12.9987C8.00996 12.9987 9.39756 12.4863 10.5008 11.6239V12.1332C10.5008 12.3332 10.5789 12.5238 10.7195 12.6644L13.8354 15.7797C14.1292 16.0734 14.6042 16.0734 14.8948 15.7797L15.7793 14.8954C16.0731 14.6017 16.0731 14.1267 15.7824 13.833ZM6.50048 10.499C4.29094 10.499 2.50018 8.71165 2.50018 6.49937C2.50018 4.29021 4.28781 2.49976 6.50048 2.49976C8.71001 2.49976 10.5008 4.28708 10.5008 6.49937C10.5008 8.70852 8.71314 10.499 6.50048 10.499Z" fill="var(--color-text)"></path></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div>
-<div class="field">
-<div id="tsd-toolbar-links"></div></div>
-<ul class="results">
-<li class="state loading">Preparing search index...</li>
-<li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div>
-<div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><rect x="1" y="3" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="7" width="14" height="2" fill="var(--color-text)"></rect><rect x="1" y="11" width="14" height="2" fill="var(--color-text)"></rect></svg></a></div></div></header>
-<div class="container container-main">
-<div class="col-8 col-content">
-<div class="tsd-page-title">
-<ul class="tsd-breadcrumb">
-<li><a href="../modules.html">quran-meta</a></li>
-<li><a href="suraNamesRu.html">suraNamesRu</a></li></ul>
-<h1>Variable suraNamesRu<code class="tsd-tag ts-flagConst">Const</code> </h1></div>
-<div class="tsd-signature">sura<wbr/>Names<wbr/>Ru<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><span class="tsd-signature-type">SuraName</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources">
-<ul>
-<li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/20f13c2/src/i18n/sura.ru.ts#L2">i18n/sura.ru.ts:2</a></li></ul></aside></div>
-<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
-<div class="tsd-navigation settings">
-<details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Settings</h3></summary>
-<div class="tsd-accordion-details">
-<div class="tsd-filter-visibility">
-<h4 class="uppercase">Member Visibility</h4><form>
-<ul id="tsd-filter-options">
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-private" name="private"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Private</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li>
-<li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></form></div>
-<div class="tsd-theme-toggle">
-<h4 class="uppercase">Theme</h4><select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div>
-<nav class="tsd-navigation primary">
-<details class="tsd-index-accordion" open><summary class="tsd-accordion-summary">
-<h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><path d="M4.93896 8.531L12 15.591L19.061 8.531L16.939 6.409L12 11.349L7.06098 6.409L4.93896 8.531Z" fill="var(--color-text)"></path></svg> Modules</h3></summary>
-<div class="tsd-accordion-details">
-<ul>
-<li><a href="../modules.html">quran-<wbr/>meta</a>
-<ul></ul></li></ul></div></details></nav>
-<nav class="tsd-navigation secondary menu-sticky">
-<ul>
-<li class="tsd-kind-type-alias"><a href="../types/AyahId.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-4194304-path"></rect><path d="M11.31 16V8.224H8.91V7.24H14.79V8.224H12.39V16H11.31Z" fill="var(--color-text)" id="icon-4194304-text"></path></svg>Ayah<wbr/>Id</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/AyahNo.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Ayah<wbr/>No</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Juz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/JuzMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Juz<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Page.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/PageMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Page<wbr/>Meta</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Sajda.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Sajda</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/Surah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Ayah</a></li>
-<li class="tsd-kind-type-alias"><a href="../types/SurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-4194304-path"></use><use href="#icon-4194304-text"></use></svg>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-variable"><a href="HizbQuarterList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-variable)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-32-path"></rect><path d="M11.106 16L8.85 7.24H9.966L11.454 13.192C11.558 13.608 11.646 13.996 11.718 14.356C11.79 14.708 11.842 14.976 11.874 15.16C11.906 14.976 11.954 14.708 12.018 14.356C12.09 13.996 12.178 13.608 12.282 13.192L13.758 7.24H14.85L12.582 16H11.106Z" fill="var(--color-text)" id="icon-32-text"></path></svg>Hizb<wbr/>Quarter<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="JuzList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Juz<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="ManzilList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Manzil<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="PageList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Page<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="RukuList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Ruku<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SajdaList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sajda<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="SuraList.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>Sura<wbr/>List</a></li>
-<li class="tsd-kind-variable"><a href="meta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>meta</a></li>
-<li class="tsd-kind-variable"><a href="suraNamesEn.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>En</a></li>
-<li class="current tsd-kind-variable"><a href="suraNamesRu.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-32-path"></use><use href="#icon-32-text"></use></svg>sura<wbr/>Names<wbr/>Ru</a></li>
-<li class="tsd-kind-function"><a href="../functions/ayaStringSplitter.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><rect fill="var(--color-icon-background)" stroke="var(--color-ts-function)" stroke-width="1.5" x="1" y="1" width="22" height="22" rx="6" id="icon-64-path"></rect><path d="M9.39 16V7.24H14.55V8.224H10.446V11.128H14.238V12.112H10.47V16H9.39Z" fill="var(--color-text)" id="icon-64-text"></path></svg>aya<wbr/>String<wbr/>Splitter</a></li>
-<li class="tsd-kind-function"><a href="../functions/findAyaidBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Ayaid<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuz.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzAndShift.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>And<wbr/>Shift</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizb.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzHizbByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Hizb<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/findJuzMetaBySurah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Juz<wbr/>Meta<wbr/>By<wbr/>Surah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findPage.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Page</a></li>
-<li class="tsd-kind-function"><a href="../functions/findRangeAroundAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Range<wbr/>Around<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/findSurahByAyaid.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>find<wbr/>Surah<wbr/>By<wbr/>Ayaid</a></li>
-<li class="tsd-kind-function"><a href="../functions/getAyaCountinSura.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Aya<wbr/>Countin<wbr/>Sura</a></li>
-<li class="tsd-kind-function"><a href="../functions/getSurahMeta.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>get<wbr/>Surah<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahJuzFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Juz<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/isAyahPageFirst.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>is<wbr/>Ayah<wbr/>Page<wbr/>First</a></li>
-<li class="tsd-kind-function"><a href="../functions/nextAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>next<wbr/>Ayah</a></li>
-<li class="tsd-kind-function"><a href="../functions/pageMeta-1.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>page<wbr/>Meta</a></li>
-<li class="tsd-kind-function"><a href="../functions/prevAyah.html" class="tsd-index-link"><svg class="tsd-kind-icon" width="24" height="24" viewBox="0 0 24 24"><use href="#icon-64-path"></use><use href="#icon-64-text"></use></svg>prev<wbr/>Ayah</a></li></ul></nav></div></div>
-<div class="container tsd-generator">
-<p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div>
-<div class="overlay"></div><script src="../assets/main.js"></script></body></html>
\ No newline at end of file
+<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>suraNamesRu | quran-meta</title><meta name="description" content="Documentation for quran-meta"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">quran-meta</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">quran-meta</a></li><li><a href="suraNamesRu.html">suraNamesRu</a></li></ul><h1>Variable suraNamesRu<code class="tsd-tag">Const</code></h1></div><div class="tsd-signature"><span class="tsd-kind-variable">sura<wbr/>Names<wbr/>Ru</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">(</span><a href="../types/SuraName.html" class="tsd-signature-type tsd-kind-type-alias">SuraName</a><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-symbol">[</span><span class="tsd-signature-symbol">]</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/quran-center/quran-meta/blob/7ff9baaee85a66d9099133c3db867ac28679aa62/src/i18n/sura.ru.ts#L2">i18n/sura.ru.ts:2</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>quran-meta</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
diff --git a/examples/hello.mjs b/examples/hello.mjs
index 37476ad..614989a 100644
--- a/examples/hello.mjs
+++ b/examples/hello.mjs
@@ -3,5 +3,5 @@
 
 import { meta } from "../dist/index.mjs"
 console.log("hello")
-//console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
+// console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
 console.log(`There are ${meta.numSuras} suras in the Holy Quran`)
diff --git a/examples/index.html b/examples/index.html
index 4b195c5..a782aed 100644
--- a/examples/index.html
+++ b/examples/index.html
@@ -1,5 +1,5 @@
 <html>
-<script src="../dist/index.js" type="text/javascript"></script>
+<script src="../dist/quran-meta.js" type="text/javascript"></script>
 Once library is included global variable `quranMeta` is exposed:
 <script type="text/javascript">
    console.log("hello")
diff --git a/examples/sample.cjs b/examples/sample.cjs
index 3d20a2f..48c8a29 100644
--- a/examples/sample.cjs
+++ b/examples/sample.cjs
@@ -10,7 +10,7 @@ const res = []
 for (let surah = 1; surah <= quranMeta.meta.numSuras; surah++) {
   const ayaCount = quranMeta.SuraList[surah][1]
   for (let ayah = 1; ayah <= ayaCount; ayah++) {
-    //console.log(surah, ayah)
+    // console.log(surah, ayah)
     // res.push([surah, ayah])
     res.push(`${String(surah).padStart(3, 0)}${String(ayah).padStart(3, 0)}`)
   }
diff --git a/examples/sample.mjs b/examples/sample.mjs
index 7709082..30bda83 100644
--- a/examples/sample.mjs
+++ b/examples/sample.mjs
@@ -9,7 +9,7 @@ const res = []
 for (let surah = 1; surah <= meta.numSuras; surah++) {
   const ayaCount = SuraList[surah][1]
   for (let ayah = 1; ayah <= ayaCount; ayah++) {
-    //console.log(surah, ayah)
+    // console.log(surah, ayah)
     // res.push([surah, ayah])
     res.push(`${String(surah).padStart(3, 0)}${String(ayah).padStart(3, 0)}`)
   }
diff --git a/examples/sample.ts b/examples/sample.ts
index a9e293c..9560dd8 100644
--- a/examples/sample.ts
+++ b/examples/sample.ts
@@ -10,7 +10,7 @@ const res: string[] = []
 for (let surah: Surah = 1; surah <= meta.numSuras; surah++) {
   const ayaCount = SuraList[surah][1]
   for (let ayah: AyahNo = 1; ayah <= ayaCount; ayah++) {
-    //console.log(surah, ayah)
+    // console.log(surah, ayah)
     // res.push([surah, ayah])
     res.push(`${String(surah).padStart(3, 0)}${String(ayah).padStart(3, 0)}`)
   }
diff --git a/lib_cjs/ayaStringSplitter.cjs b/lib_cjs/ayaStringSplitter.cjs
new file mode 100644
index 0000000..5b6edf2
--- /dev/null
+++ b/lib_cjs/ayaStringSplitter.cjs
@@ -0,0 +1,35 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.ayaStringSplitter = ayaStringSplitter;
+var _validation = require("./validation.cjs");
+function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map(a => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    (0, _validation.checkValidSurahAyah)(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
\ No newline at end of file
diff --git a/lib_cjs/ayaStringSplitter.js b/lib_cjs/ayaStringSplitter.js
deleted file mode 100644
index acd4efc..0000000
--- a/lib_cjs/ayaStringSplitter.js
+++ /dev/null
@@ -1,40 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ayaStringSplitter = ayaStringSplitter;
-var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
-/**
- *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
- * @param {*} str String of type "x:y" or "x:y1-y2"
- * @returns {array} array [x,y] or [x,[y1,y2]] respectively
- */
-function ayaStringSplitter(str) {
-    var _a = str.trim().split(":"), surahStr = _a[0], ayahsStr = _a[1];
-    var surah = parseInt(surahStr, 10);
-    if (isNaN(surah)) {
-        throw "Error in surah format " + str;
-    }
-    if (!ayahsStr) {
-        throw "Error in data " + str;
-    }
-    var ayahs;
-    if (ayahsStr.includes("-")) {
-        ayahs = ayahsStr.split("-").map(function (a) {
-            var ayah = parseInt(a, 10);
-            if (isNaN(ayah) || ayah === 0) {
-                throw "Error in ayah " + a;
-            }
-            return ayah;
-        });
-        if (ayahs[0] > ayahs[1])
-            throw "Error in ayah range " + str;
-    }
-    else {
-        ayahs = parseInt(ayahsStr, 10);
-        if (isNaN(ayahs) || ayahs === 0) {
-            throw "Error in data " + str;
-        }
-        (0, checkValidSurahAyah_1.checkValidSurahAyah)(surah, ayahs);
-    }
-    return [surah, ayahs];
-}
-//# sourceMappingURL=ayaStringSplitter.js.map
\ No newline at end of file
diff --git a/lib_cjs/ayaStringSplitter.js.map b/lib_cjs/ayaStringSplitter.js.map
deleted file mode 100644
index b22ff10..0000000
--- a/lib_cjs/ayaStringSplitter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":";;AAQA,8CAgCC;AAxCD,6DAA2D;AAG3D;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,GAAW;IACrC,IAAA,KAAuB,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAA3C,QAAQ,QAAA,EAAE,QAAQ,QAAyB,CAAA;IAClD,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,wBAAwB,GAAG,GAAG,CAAA;IACtC,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gBAAgB,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED,IAAI,KAAgC,CAAA;IACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC;YAC/B,IAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAqB,CAAA;QACtB,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,sBAAsB,GAAG,GAAG,CAAA;IAC7D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAG,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,gBAAgB,GAAG,GAAG,CAAA;QAC9B,CAAC;QACD,IAAA,yCAAmB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;IAGD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/checkValidAyahId.js b/lib_cjs/checkValidAyahId.js
deleted file mode 100644
index 9f41016..0000000
--- a/lib_cjs/checkValidAyahId.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.checkValidAyahId = checkValidAyahId;
-var const_1 = require("./const");
-/**
- * Checks if the given Ayah (verse) ID is valid.
- *
- * @param ayaId - The Ayah (verse) ID to check.
- * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
- */
-function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > const_1.meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + const_1.meta.numAyas);
-    return true;
-}
-//# sourceMappingURL=checkValidAyahId.js.map
\ No newline at end of file
diff --git a/lib_cjs/checkValidAyahId.js.map b/lib_cjs/checkValidAyahId.js.map
deleted file mode 100644
index cf0dd10..0000000
--- a/lib_cjs/checkValidAyahId.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"checkValidAyahId.js","sourceRoot":"","sources":["../src/checkValidAyahId.ts"],"names":[],"mappings":";;AASA,4CAIC;AAbD,iCAA+B;AAG/B;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAI,CAAC,OAAO;QACnC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,YAAI,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurah.js b/lib_cjs/checkValidSurah.js
deleted file mode 100644
index 0224d97..0000000
--- a/lib_cjs/checkValidSurah.js
+++ /dev/null
@@ -1,21 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.checkValidSurah = checkValidSurah;
-var const_1 = require("./const");
-/**
- * Checks if the given Surah (chapter) number is valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah number is valid, false otherwise.
- */
-function checkValidSurah(surah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (surah < 1 || surah > const_1.meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
-    }
-    return true;
-}
-//# sourceMappingURL=checkValidSurah.js.map
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurah.js.map b/lib_cjs/checkValidSurah.js.map
deleted file mode 100644
index caa8242..0000000
--- a/lib_cjs/checkValidSurah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"checkValidSurah.js","sourceRoot":"","sources":["../src/checkValidSurah.ts"],"names":[],"mappings":";;AAWA,0CAMC;AAjBD,iCAA+B;AAG/B;;;;;;GAMG;AAEH,SAAgB,eAAe,CAAC,KAAY,EAAE,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IAC7D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,YAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurahAyah.js b/lib_cjs/checkValidSurahAyah.js
deleted file mode 100644
index b4cb3c7..0000000
--- a/lib_cjs/checkValidSurahAyah.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.checkValidSurahAyah = checkValidSurahAyah;
-var checkValidSurah_1 = require("./checkValidSurah");
-var getSurahMeta_1 = require("./getSurahMeta");
-/**
- * Checks if the given Surah and Ayah (verse) numbers are valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param ayah - The Ayah (verse) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah and Ayah numbers are valid, false otherwise.
- */
-function checkValidSurahAyah(surah, ayah, checkOnly) {
-    if (checkOnly === void 0) { checkOnly = false; }
-    if (!(0, checkValidSurah_1.checkValidSurah)(surah, checkOnly))
-        return false;
-    var _a = (0, getSurahMeta_1.getSurahMeta)(surah), startAyahId = _a[0], ayahCount = _a[1];
-    if (ayah < 1 || ayah > ayahCount) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Ayah must be between 1 and " + ayahCount);
-    }
-    return true;
-}
-//# sourceMappingURL=checkValidSurahAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/checkValidSurahAyah.js.map b/lib_cjs/checkValidSurahAyah.js.map
deleted file mode 100644
index 12b4c23..0000000
--- a/lib_cjs/checkValidSurahAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"checkValidSurahAyah.js","sourceRoot":"","sources":["../src/checkValidSurahAyah.ts"],"names":[],"mappings":";;AAYA,kDASC;AArBD,qDAAoD;AACpD,+CAA8C;AAG9C;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CAAC,KAAY,EAAE,IAAY,EAAE,SAAiB;IAAjB,0BAAA,EAAA,iBAAiB;IAC/E,IAAI,CAAC,IAAA,iCAAe,EAAC,KAAK,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAA,KAA2B,IAAA,2BAAY,EAAC,KAAK,CAAC,EAA7C,WAAW,QAAA,EAAE,SAAS,QAAuB,CAAC;IACrD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/const.cjs b/lib_cjs/const.cjs
new file mode 100644
index 0000000..c157aff
--- /dev/null
+++ b/lib_cjs/const.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.meta = void 0;
+const meta = exports.meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
\ No newline at end of file
diff --git a/lib_cjs/const.js b/lib_cjs/const.js
deleted file mode 100644
index 1974d5c..0000000
--- a/lib_cjs/const.js
+++ /dev/null
@@ -1,11 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.meta = void 0;
-exports.meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/lib_cjs/const.js.map b/lib_cjs/const.js.map
deleted file mode 100644
index 236ae00..0000000
--- a/lib_cjs/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":";;;AAQa,QAAA,IAAI,GAAwB,MAAM,CAAC,MAAM,CAAC;IACrD,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;CACf,CAAC,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/findAyaidBySurah.cjs b/lib_cjs/findAyaidBySurah.cjs
new file mode 100644
index 0000000..68bdf40
--- /dev/null
+++ b/lib_cjs/findAyaidBySurah.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findAyaidBySurah = findAyaidBySurah;
+var _getSurahMeta = require("./getSurahMeta.cjs");
+var _validation = require("./validation.cjs");
+function findAyaidBySurah(surah, ayah) {
+  (0, _validation.checkValidSurahAyah)(surah, ayah);
+  const [startAyahId] = (0, _getSurahMeta.getSurahMeta)(surah);
+  return startAyahId + ayah;
+}
\ No newline at end of file
diff --git a/lib_cjs/findAyaidBySurah.js b/lib_cjs/findAyaidBySurah.js
deleted file mode 100644
index eb29c45..0000000
--- a/lib_cjs/findAyaidBySurah.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findAyaidBySurah = findAyaidBySurah;
-var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
-var getSurahMeta_1 = require("./getSurahMeta");
-/**
- * Get the ayah ID for the given surah and ayah number.
- * @param surah - The surah number.
- * @param ayah - The ayah number within the surah.
- * @returns The ayah ID for the given surah and ayah number.
- */
-function findAyaidBySurah(surah, ayah) {
-    (0, checkValidSurahAyah_1.checkValidSurahAyah)(surah, ayah);
-    var startAyahId = (0, getSurahMeta_1.getSurahMeta)(surah)[0];
-    return startAyahId + ayah;
-}
-//# sourceMappingURL=findAyaidBySurah.js.map
\ No newline at end of file
diff --git a/lib_cjs/findAyaidBySurah.js.map b/lib_cjs/findAyaidBySurah.js.map
deleted file mode 100644
index 185bc20..0000000
--- a/lib_cjs/findAyaidBySurah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findAyaidBySurah.js","sourceRoot":"","sources":["../src/findAyaidBySurah.ts"],"names":[],"mappings":";;AAUA,4CAIC;AAdD,6DAA4D;AAC5D,+CAA8C;AAG9C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAY,EAAE,IAAY;IACzD,IAAA,yCAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,IAAA,WAAW,GAAI,IAAA,2BAAY,EAAC,KAAK,CAAC,GAAvB,CAAwB;IAC1C,OAAO,WAAW,GAAG,IAAI,CAAC;AAC5B,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuz.cjs b/lib_cjs/findJuz.cjs
new file mode 100644
index 0000000..2c86b1a
--- /dev/null
+++ b/lib_cjs/findJuz.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuz = findJuz;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _validation = require("./validation.cjs");
+function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : (0, _validation.checkValidSurahAyah)(surah, ayah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findJuzByAyaid.findJuzByAyaid)(ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuz.js b/lib_cjs/findJuz.js
deleted file mode 100644
index db789a3..0000000
--- a/lib_cjs/findJuz.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findJuz = findJuz;
-var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var findJuzByAyaid_1 = require("./findJuzByAyaid");
-/**
- * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
- *
- * @param surah - The Surah (chapter) number.
- * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
- * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
- * @returns The Juz (part) number that the given Ayah belongs to.
- */
-function findJuz(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : ((0, checkValidSurahAyah_1.checkValidSurahAyah)(surah, ayah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
-    return (0, findJuzByAyaid_1.findJuzByAyaid)(ayahId);
-}
-//# sourceMappingURL=findJuz.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuz.js.map b/lib_cjs/findJuz.js.map
deleted file mode 100644
index afdb31e..0000000
--- a/lib_cjs/findJuz.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuz.js","sourceRoot":"","sources":["../src/findJuz.ts"],"names":[],"mappings":";;AAaA,0BAMC;AAnBD,6DAA4D;AAC5D,uDAAsD;AACtD,mDAAkD;AAGlD;;;;;;;GAOG;AACH,SAAgB,OAAO,CAAC,KAAY,EAAE,IAAgB,EAAE,QAAgB;IAAlC,qBAAA,EAAA,QAAgB;IAAE,yBAAA,EAAA,gBAAgB;IACtE,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,IAAA,yCAAmB,EAAC,KAAK,EAAE,IAAI,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAEpF,OAAO,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzAndShift.cjs b/lib_cjs/findJuzAndShift.cjs
new file mode 100644
index 0000000..ca1773d
--- /dev/null
+++ b/lib_cjs/findJuzAndShift.cjs
@@ -0,0 +1,24 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzAndShift = findJuzAndShift;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  const juz = (0, _findJuzByAyaid.findJuzByAyaid)(ayahId);
+  const leftAyahId = _juzList.JuzList[juz];
+  if (ayahMode) [surah] = (0, _findSurahByAyaid.findSurahByAyaid)(ayahId);
+  const [surahStartAyahId] = _surahList.SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzAndShift.js b/lib_cjs/findJuzAndShift.js
deleted file mode 100644
index 538784d..0000000
--- a/lib_cjs/findJuzAndShift.js
+++ /dev/null
@@ -1,38 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findJuzAndShift = findJuzAndShift;
-var checkValidAyahId_1 = require("./checkValidAyahId");
-var checkValidSurah_1 = require("./checkValidSurah");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var findJuzByAyaid_1 = require("./findJuzByAyaid");
-var findSurahByAyaid_1 = require("./findSurahByAyaid");
-var juzList_1 = require("./lists/juzList");
-var surahList_1 = require("./lists/surahList");
-/**
- * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
- *
- * @param surah - The surah (chapter) that contains the ayah.
- * @param ayah - The ayah (verse) number.
- * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
- * @returns An object containing the following properties:
- *   - `juz`: The juz (section) that contains the ayah.
- *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
- *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
- */
-function findJuzAndShift(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
-        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
-    var juz = (0, findJuzByAyaid_1.findJuzByAyaid)(ayahId);
-    var leftAyahId = juzList_1.JuzList[juz];
-    if (ayahMode)
-        surah = (0, findSurahByAyaid_1.findSurahByAyaid)(ayahId)[0];
-    var surahStartAyahId = surahList_1.SuraList[surah][0];
-    return {
-        juz: juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId: leftAyahId
-    };
-}
-//# sourceMappingURL=findJuzAndShift.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzAndShift.js.map b/lib_cjs/findJuzAndShift.js.map
deleted file mode 100644
index 811a8ee..0000000
--- a/lib_cjs/findJuzAndShift.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzAndShift.js","sourceRoot":"","sources":["../src/findJuzAndShift.ts"],"names":[],"mappings":";;AAqBA,0CAsBC;AA3CD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,mDAAkD;AAClD,uDAAsD;AACtD,2CAA0C;AAC1C,+CAA6C;AAI7C;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAMhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,IAAM,GAAG,GAAG,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;IACnC,IAAM,UAAU,GAAG,iBAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ;QAAG,KAAK,GAAI,IAAA,mCAAgB,EAAC,MAAM,CAAC,GAA5B,CAA6B;IAC1C,IAAA,gBAAgB,GAAI,oBAAQ,CAAC,KAAK,CAAC,GAAnB,CAAoB;IAC3C,OAAO;QACL,GAAG,KAAA;QACH,oBAAoB,EAAE,gBAAgB,GAAG,UAAU,GAAG,CAAC;QACvD,UAAU,YAAA;KACX,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzByAyaid.cjs b/lib_cjs/findJuzByAyaid.cjs
new file mode 100644
index 0000000..395900f
--- /dev/null
+++ b/lib_cjs/findJuzByAyaid.cjs
@@ -0,0 +1,12 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzByAyaid = findJuzByAyaid;
+var _juzList = require("./lists/juzList.cjs");
+var _validation = require("./validation.cjs");
+function findJuzByAyaid(ayaId) {
+  (0, _validation.checkValidAyahId)(ayaId);
+  return _juzList.JuzList.findIndex(x => x > ayaId) - 1;
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzByAyaid.js b/lib_cjs/findJuzByAyaid.js
deleted file mode 100644
index be061ce..0000000
--- a/lib_cjs/findJuzByAyaid.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findJuzByAyaid = findJuzByAyaid;
-var checkValidAyahId_1 = require("./checkValidAyahId");
-var juzList_1 = require("./lists/juzList");
-/**
- * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
- *
- * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
- * @returns The Juz (part) of the Quran that contains the given Ayah ID.
- */
-function findJuzByAyaid(ayaId) {
-    (0, checkValidAyahId_1.checkValidAyahId)(ayaId);
-    return juzList_1.JuzList.findIndex(function (x) { return x > ayaId; }) - 1;
-}
-//# sourceMappingURL=findJuzByAyaid.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzByAyaid.js.map b/lib_cjs/findJuzByAyaid.js.map
deleted file mode 100644
index 267eccb..0000000
--- a/lib_cjs/findJuzByAyaid.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzByAyaid.js","sourceRoot":"","sources":["../src/findJuzByAyaid.ts"],"names":[],"mappings":";;AAWA,wCAIC;AAfD,uDAAsD;AACtD,2CAA0C;AAI1C;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,KAAa;IAC1C,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAC;IAExB,OAAO,iBAAO,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,KAAK,EAAT,CAAS,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizb.cjs b/lib_cjs/findJuzHizb.cjs
new file mode 100644
index 0000000..fe81cdf
--- /dev/null
+++ b/lib_cjs/findJuzHizb.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzHizb = findJuzHizb;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzHizbByAyaid = require("./findJuzHizbByAyaid.cjs");
+var _validation = require("./validation.cjs");
+function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findJuzHizbByAyaid.findJuzHizbByAyaid)(ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizb.js b/lib_cjs/findJuzHizb.js
deleted file mode 100644
index 8d2b104..0000000
--- a/lib_cjs/findJuzHizb.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findJuzHizb = findJuzHizb;
-var checkValidSurah_1 = require("./checkValidSurah");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var findJuzHizbByAyaid_1 = require("./findJuzHizbByAyaid");
-/**
- * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
- *
- * @param surah - The Surah (chapter) number.
- * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
- * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
- * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
- */
-function findJuzHizb(surah, ayah, ayahMode) {
-    if (ayah === void 0) { ayah = 1; }
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
-    return (0, findJuzHizbByAyaid_1.findJuzHizbByAyaid)(ayahId);
-}
-//# sourceMappingURL=findJuzHizb.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizb.js.map b/lib_cjs/findJuzHizb.js.map
deleted file mode 100644
index 4dce207..0000000
--- a/lib_cjs/findJuzHizb.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzHizb.js","sourceRoot":"","sources":["../src/findJuzHizb.ts"],"names":[],"mappings":";;AAaA,kCAUC;AAvBD,qDAAoD;AACpD,uDAAsD;AACtD,2DAA0D;AAG1D;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,KAAY,EACZ,IAAgB,EAChB,QAAgB;IADhB,qBAAA,EAAA,QAAgB;IAChB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,IAAA,uCAAkB,EAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizbByAyaid.cjs b/lib_cjs/findJuzHizbByAyaid.cjs
new file mode 100644
index 0000000..8a19e08
--- /dev/null
+++ b/lib_cjs/findJuzHizbByAyaid.cjs
@@ -0,0 +1,20 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _hizbList = require("./lists/hizbList.cjs");
+var _validation = require("./validation.cjs");
+function findJuzHizbByAyaid(ayaId) {
+  (0, _validation.checkValidAyahId)(ayaId);
+  const juz = (0, _findJuzByAyaid.findJuzByAyaid)(ayaId);
+  const quarterIndex = _hizbList.HizbQuarterList.findIndex(x => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return {
+    juz,
+    hizb,
+    id: quarterIndex
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizbByAyaid.js b/lib_cjs/findJuzHizbByAyaid.js
deleted file mode 100644
index 3fe9c67..0000000
--- a/lib_cjs/findJuzHizbByAyaid.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findJuzHizbByAyaid = findJuzHizbByAyaid;
-var checkValidAyahId_1 = require("./checkValidAyahId");
-var findJuzByAyaid_1 = require("./findJuzByAyaid");
-var hizbList_1 = require("./lists/hizbList");
-/**
- * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
- *
- * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
- * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
- */
-function findJuzHizbByAyaid(ayaId) {
-    (0, checkValidAyahId_1.checkValidAyahId)(ayaId);
-    var juz = (0, findJuzByAyaid_1.findJuzByAyaid)(ayaId);
-    var id = hizbList_1.HizbQuarterList.findIndex(function (x) { return x > ayaId; }) - 1;
-    return { juz: juz, hizb: id % 8 || 8, id: id };
-}
-//# sourceMappingURL=findJuzHizbByAyaid.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzHizbByAyaid.js.map b/lib_cjs/findJuzHizbByAyaid.js.map
deleted file mode 100644
index d95ca04..0000000
--- a/lib_cjs/findJuzHizbByAyaid.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzHizbByAyaid.js","sourceRoot":"","sources":["../src/findJuzHizbByAyaid.ts"],"names":[],"mappings":";;AAYA,gDAOC;AAnBD,uDAAsD;AACtD,mDAAkD;AAClD,6CAAmD;AAInD;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAC;IAExB,IAAM,GAAG,GAAG,IAAA,+BAAc,EAAC,KAAK,CAAC,CAAC;IAElC,IAAM,EAAE,GAAG,0BAAe,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,KAAK,EAAT,CAAS,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,EAAE,GAAG,KAAA,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAA,EAAE,CAAC;AACxC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findJuzMetaBySurah.cjs b/lib_cjs/findJuzMetaBySurah.cjs
new file mode 100644
index 0000000..40e3a5e
--- /dev/null
+++ b/lib_cjs/findJuzMetaBySurah.cjs
@@ -0,0 +1,28 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findJuzMetaBySurah = findJuzMetaBySurah;
+var _const = require("./const.cjs");
+var _findJuzAndShift = require("./findJuzAndShift.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _juzList = require("./lists/juzList.cjs");
+function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = (0, _findJuzAndShift.findJuzAndShift)(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < _const.meta.numJuzs && (0, _findSurahByAyaid.findSurahByAyaid)(_juzList.JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: _juzList.JuzList[rightJuz + 1]
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/findJuzMetaBySurah.js b/lib_cjs/findJuzMetaBySurah.js
deleted file mode 100644
index 48f6ddb..0000000
--- a/lib_cjs/findJuzMetaBySurah.js
+++ /dev/null
@@ -1,29 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findJuzMetaBySurah = findJuzMetaBySurah;
-var const_1 = require("./const");
-var findJuzAndShift_1 = require("./findJuzAndShift");
-var findSurahByAyaid_1 = require("./findSurahByAyaid");
-var juzList_1 = require("./lists/juzList");
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-function findJuzMetaBySurah(surah, ayah) {
-    if (ayah === void 0) { ayah = 1; }
-    var _a = (0, findJuzAndShift_1.findJuzAndShift)(surah, ayah), leftjuz = _a.juz, ayahsBetweenJuzSurah = _a.ayahsBetweenJuzSurah, leftAyahId = _a.leftAyahId;
-    var rightJuz = leftjuz;
-    while (rightJuz < const_1.meta.numJuzs &&
-        (0, findSurahByAyaid_1.findSurahByAyaid)(juzList_1.JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz: leftjuz,
-        ayahsBetweenJuzSurah: ayahsBetweenJuzSurah,
-        rightJuz: rightJuz,
-        leftAyahId: leftAyahId,
-        rightAyahId: juzList_1.JuzList[rightJuz + 1],
-    };
-}
-//# sourceMappingURL=findJuzMetaBySurah.js.map
\ No newline at end of file
diff --git a/lib_cjs/findJuzMetaBySurah.js.map b/lib_cjs/findJuzMetaBySurah.js.map
deleted file mode 100644
index 0ebb7cf..0000000
--- a/lib_cjs/findJuzMetaBySurah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzMetaBySurah.js","sourceRoot":"","sources":["../src/findJuzMetaBySurah.ts"],"names":[],"mappings":";;AAYA,gDAiBC;AA7BD,iCAA+B;AAC/B,qDAAoD;AACpD,uDAAsD;AACtD,2CAA0C;AAG1C;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAY,EAAE,IAAgB;IAAhB,qBAAA,EAAA,QAAgB;IACzD,IAAA,KAEF,IAAA,iCAAe,EAAC,KAAK,EAAE,IAAI,CAAC,EADzB,OAAO,SAAA,EAAE,oBAAoB,0BAAA,EAAE,UAAU,gBAChB,CAAC;IAEjC,IAAI,QAAQ,GAAQ,OAAO,CAAC;IAC5B,OAAO,QAAQ,GAAG,YAAI,CAAC,OAAO;QAC5B,IAAA,mCAAgB,EAAC,iBAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;QACnD,QAAQ,EAAE,CAAC;IAEb,OAAO;QACL,OAAO,SAAA;QACP,oBAAoB,sBAAA;QACpB,QAAQ,UAAA;QACR,UAAU,YAAA;QACV,WAAW,EAAE,iBAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findPage.cjs b/lib_cjs/findPage.cjs
new file mode 100644
index 0000000..020c9b0
--- /dev/null
+++ b/lib_cjs/findPage.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findPage = findPage;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _validation = require("./validation.cjs");
+function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return _pageList.PageList.findIndex(x => x > ayahId) - 1;
+}
\ No newline at end of file
diff --git a/lib_cjs/findPage.js b/lib_cjs/findPage.js
deleted file mode 100644
index 34309d1..0000000
--- a/lib_cjs/findPage.js
+++ /dev/null
@@ -1,23 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findPage = findPage;
-var checkValidAyahId_1 = require("./checkValidAyahId");
-var checkValidSurah_1 = require("./checkValidSurah");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var pageList_1 = require("./lists/pageList");
-/**
- * Finds the page number for the given Surah and Ayah number.
- *
- * @param surah - The Surah to find the page for.
- * @param ayah - The Ayah number to find the page for.
- * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
- * @returns The page number for the given Surah and Ayah.
- */
-function findPage(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
-        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
-    return pageList_1.PageList.findIndex(function (x) { return x > ayahId; }) - 1;
-}
-//# sourceMappingURL=findPage.js.map
\ No newline at end of file
diff --git a/lib_cjs/findPage.js.map b/lib_cjs/findPage.js.map
deleted file mode 100644
index fbfbd39..0000000
--- a/lib_cjs/findPage.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findPage.js","sourceRoot":"","sources":["../src/findPage.ts"],"names":[],"mappings":";;AAeA,4BAMC;AArBD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,6CAA4C;AAI5C;;;;;;;GAOG;AACH,SAAgB,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IACnE,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,mBAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,MAAM,EAAV,CAAU,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findRangeAroundAyah.cjs b/lib_cjs/findRangeAroundAyah.cjs
new file mode 100644
index 0000000..f1b04b1
--- /dev/null
+++ b/lib_cjs/findRangeAroundAyah.cjs
@@ -0,0 +1,40 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findRangeAroundAyah = findRangeAroundAyah;
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _findPage = require("./findPage.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  switch (mode) {
+    case "juz":
+      {
+        const juz = (0, _findJuzByAyaid.findJuzByAyaid)(ayahId);
+        return [_juzList.JuzList[juz], _juzList.JuzList[juz + 1] - 1];
+      }
+    case "surah":
+      {
+        return [_surahList.SuraList[surah][0] + 1, _surahList.SuraList[surah + 1][0]];
+      }
+    case "ayah":
+      {
+        return [ayahId, ayahId];
+      }
+    case "page":
+      {
+        const page = (0, _findPage.findPage)(-1, ayahId, true);
+        return [_pageList.PageList[page], _pageList.PageList[page + 1] - 1];
+      }
+    case "all":
+    default:
+      return [1, _const.meta.numAyas];
+  }
+}
\ No newline at end of file
diff --git a/lib_cjs/findRangeAroundAyah.js b/lib_cjs/findRangeAroundAyah.js
deleted file mode 100644
index 8ccc537..0000000
--- a/lib_cjs/findRangeAroundAyah.js
+++ /dev/null
@@ -1,67 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findRangeAroundAyah = findRangeAroundAyah;
-var checkValidSurah_1 = require("./checkValidSurah");
-var const_1 = require("./const");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var findJuzByAyaid_1 = require("./findJuzByAyaid");
-var findPage_1 = require("./findPage");
-var juzList_1 = require("./lists/juzList");
-var pageList_1 = require("./lists/pageList");
-var surahList_1 = require("./lists/surahList");
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-function findRangeAroundAyah(surah, ayah, mode, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ayah
-        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            var juz = (0, findJuzByAyaid_1.findJuzByAyaid)(ayahId);
-            return [juzList_1.JuzList[juz], juzList_1.JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [surahList_1.SuraList[surah][0] + 1, surahList_1.SuraList[surah + 1][0]];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            var page = (0, findPage_1.findPage)(-1, ayahId, true);
-            return [pageList_1.PageList[page], pageList_1.PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, const_1.meta.numAyas];
-    }
-}
-//# sourceMappingURL=findRangeAroundAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/findRangeAroundAyah.js.map b/lib_cjs/findRangeAroundAyah.js.map
deleted file mode 100644
index 5555b16..0000000
--- a/lib_cjs/findRangeAroundAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findRangeAroundAyah.js","sourceRoot":"","sources":["../src/findRangeAroundAyah.ts"],"names":[],"mappings":";;AA0CA,kDAgCC;AA1ED,qDAAoD;AACpD,iCAA+B;AAC/B,uDAAsD;AACtD,mDAAkD;AAClD,uCAAsC;AACtC,2CAA0C;AAC1C,6CAA4C;AAC5C,+CAA6C;AAG7C;;;GAGG;AACH,sDAAsD;AACtD,gDAAgD;AAChD,2EAA2E;AAC3E,kCAAkC;AAClC,2CAA2C;AAC3C,+CAA+C;AAC/C,MAAM;AACN,2DAA2D;AAC3D,kBAAkB;AAClB,kBAAkB;AAClB,yDAAyD;AACzD,0EAA0E;AAC1E,MAAM;AACN,aAAa;AACb,eAAe;AACf,sCAAsC;AACtC,mCAAmC;AACnC,MAAM;AACN,IAAI;AAGJ;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,IAAM,GAAG,GAAQ,IAAA,+BAAc,EAAC,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,iBAAO,CAAC,GAAG,CAAC,EAAE,iBAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,CAAC,oBAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,oBAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAM,IAAI,GAAS,IAAA,mBAAQ,EAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,mBAAQ,CAAC,IAAI,CAAC,EAAE,mBAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,KAAK,CAAC;QACX;YACE,OAAO,CAAC,CAAC,EAAE,YAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/findSurahByAyaid.cjs b/lib_cjs/findSurahByAyaid.cjs
new file mode 100644
index 0000000..1093d36
--- /dev/null
+++ b/lib_cjs/findSurahByAyaid.cjs
@@ -0,0 +1,13 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.findSurahByAyaid = findSurahByAyaid;
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function findSurahByAyaid(ayaId) {
+  (0, _validation.checkValidAyahId)(ayaId);
+  const suraNum = _surahList.SuraList.findIndex(x => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - _surahList.SuraList[suraNum][0]];
+}
\ No newline at end of file
diff --git a/lib_cjs/findSurahByAyaid.js b/lib_cjs/findSurahByAyaid.js
deleted file mode 100644
index 1378cb9..0000000
--- a/lib_cjs/findSurahByAyaid.js
+++ /dev/null
@@ -1,17 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.findSurahByAyaid = findSurahByAyaid;
-var checkValidAyahId_1 = require("./checkValidAyahId");
-var surahList_1 = require("./lists/surahList");
-/**
- * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
- *
- * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
- * @returns An array containing the Surah number and the Ayah number within that Surah.
- */
-function findSurahByAyaid(ayaId) {
-    (0, checkValidAyahId_1.checkValidAyahId)(ayaId);
-    var suraNum = surahList_1.SuraList.findIndex(function (x) { return x[0] >= ayaId; }) - 1;
-    return [suraNum, ayaId - surahList_1.SuraList[suraNum][0]];
-}
-//# sourceMappingURL=findSurahByAyaid.js.map
\ No newline at end of file
diff --git a/lib_cjs/findSurahByAyaid.js.map b/lib_cjs/findSurahByAyaid.js.map
deleted file mode 100644
index d949fb5..0000000
--- a/lib_cjs/findSurahByAyaid.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findSurahByAyaid.js","sourceRoot":"","sources":["../src/findSurahByAyaid.ts"],"names":[],"mappings":";;AAUA,4CAKC;AAfD,uDAAsD;AACtD,+CAA6C;AAG7C;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,IAAA,mCAAgB,EAAC,KAAK,CAAC,CAAC;IAExB,IAAM,OAAO,GAAU,oBAAQ,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAb,CAAa,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,oBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/getAyaCountinSura.cjs b/lib_cjs/getAyaCountinSura.cjs
new file mode 100644
index 0000000..8043b3e
--- /dev/null
+++ b/lib_cjs/getAyaCountinSura.cjs
@@ -0,0 +1,10 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.getAyaCountinSura = getAyaCountinSura;
+var _getSurahMeta = require("./getSurahMeta.cjs");
+function getAyaCountinSura(surah) {
+  return (0, _getSurahMeta.getSurahMeta)(surah)[1];
+}
\ No newline at end of file
diff --git a/lib_cjs/getAyaCountinSura.js b/lib_cjs/getAyaCountinSura.js
deleted file mode 100644
index bc3ec6f..0000000
--- a/lib_cjs/getAyaCountinSura.js
+++ /dev/null
@@ -1,13 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getAyaCountinSura = getAyaCountinSura;
-var getSurahMeta_1 = require("./getSurahMeta");
-/**
- * Get the number of ayahs (verses) in the specified surah.
- * @param surah - The surah number.
- * @returns The number of ayahs in the specified surah.
- */
-function getAyaCountinSura(surah) {
-    return (0, getSurahMeta_1.getSurahMeta)(surah)[1];
-}
-//# sourceMappingURL=getAyaCountinSura.js.map
\ No newline at end of file
diff --git a/lib_cjs/getAyaCountinSura.js.map b/lib_cjs/getAyaCountinSura.js.map
deleted file mode 100644
index 88df28c..0000000
--- a/lib_cjs/getAyaCountinSura.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getAyaCountinSura.js","sourceRoot":"","sources":["../src/getAyaCountinSura.ts"],"names":[],"mappings":";;AAQA,8CAEC;AAVD,+CAA8C;AAG9C;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,KAAY;IAC5C,OAAO,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/getSurahMeta.cjs b/lib_cjs/getSurahMeta.cjs
new file mode 100644
index 0000000..6702955
--- /dev/null
+++ b/lib_cjs/getSurahMeta.cjs
@@ -0,0 +1,12 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.getSurahMeta = getSurahMeta;
+var _surahList = require("./lists/surahList.cjs");
+var _validation = require("./validation.cjs");
+function getSurahMeta(surah) {
+  (0, _validation.checkValidSurah)(surah);
+  return _surahList.SuraList[surah];
+}
\ No newline at end of file
diff --git a/lib_cjs/getSurahMeta.js b/lib_cjs/getSurahMeta.js
deleted file mode 100644
index 873f7ad..0000000
--- a/lib_cjs/getSurahMeta.js
+++ /dev/null
@@ -1,16 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.getSurahMeta = getSurahMeta;
-var checkValidSurah_1 = require("./checkValidSurah");
-var surahList_1 = require("./lists/surahList");
-/**
- * Gets the metadata for the specified Surah.
- *
- * @param surah - The Surah to get the metadata for.
- * @returns The metadata for the specified Surah.
- */
-function getSurahMeta(surah) {
-    (0, checkValidSurah_1.checkValidSurah)(surah);
-    return surahList_1.SuraList[surah];
-}
-//# sourceMappingURL=getSurahMeta.js.map
\ No newline at end of file
diff --git a/lib_cjs/getSurahMeta.js.map b/lib_cjs/getSurahMeta.js.map
deleted file mode 100644
index 3bfff4a..0000000
--- a/lib_cjs/getSurahMeta.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getSurahMeta.js","sourceRoot":"","sources":["../src/getSurahMeta.ts"],"names":[],"mappings":";;AAWA,oCAGC;AAdD,qDAAoD;AACpD,+CAA6C;AAI7C;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,KAAY;IACvC,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC;IACvB,OAAO,oBAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/hizbList.js b/lib_cjs/hizbList.js
deleted file mode 100644
index d4c2caa..0000000
--- a/lib_cjs/hizbList.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.HizbQuarterList = void 0;
-//------------------ Hizb Data ---------------------
-exports.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,
-];
-//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_cjs/hizbList.js.map b/lib_cjs/hizbList.js.map
deleted file mode 100644
index 08fd1fd..0000000
--- a/lib_cjs/hizbList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACvC,QAAA,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.en.cjs b/lib_cjs/i18n/sura.en.cjs
new file mode 100644
index 0000000..3732d15
--- /dev/null
+++ b/lib_cjs/i18n/sura.en.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.suraNames = void 0;
+const suraNames = exports.suraNames = [[], ["Al-Faatiha", "The Opening"], ["Al-Baqara", "The Cow"], ["Aal-i-Imraan", "The Family of Imraan"], ["An-Nisaa", "The Women"], ["Al-Maaida", "The Table"], ["Al-An'aam", "The Cattle"], ["Al-A'raaf", "The Heights"], ["Al-Anfaal", "The Spoils of War"], ["At-Tawba", "The Repentance"], ["Yunus", "Jonas"], ["Hud", "Hud"], ["Yusuf", "Joseph"], ["Ar-Ra'd", "The Thunder"], ["Ibrahim", "Abraham"], ["Al-Hijr", "The Rock"], ["An-Nahl", "The Bee"], ["Al-Israa", "The Night Journey"], ["Al-Kahf", "The Cave"], ["Maryam", "Mary"], ["Taa-Haa", "Taa-Haa"], ["Al-Anbiyaa", "The Prophets"], ["Al-Hajj", "The Pilgrimage"], ["Al-Muminoon", "The Believers"], ["An-Noor", "The Light"], ["Al-Furqaan", "The Criterion"], ["Ash-Shu'araa", "The Poets"], ["An-Naml", "The Ant"], ["Al-Qasas", "The Stories"], ["Al-Ankaboot", "The Spider"], ["Ar-Room", "The Romans"], ["Luqman", "Luqman"], ["As-Sajda", "The Prostration"], ["Al-Ahzaab", "The Clans"], ["Saba", "Sheba"], ["Faatir", "The Originator"], ["Yaseen", "Yaseen"], ["As-Saaffaat", "Those drawn up in Ranks"], ["Saad", "The letter Saad"], ["Az-Zumar", "The Groups"], ["Al-Ghaafir", "The Forgiver"], ["Fussilat", "Explained in detail"], ["Ash-Shura", "Consultation"], ["Az-Zukhruf", "Ornaments of gold"], ["Ad-Dukhaan", "The Smoke"], ["Al-Jaathiya", "Crouching"], ["Al-Ahqaf", "The Dunes"], ["Muhammad", "Muhammad"], ["Al-Fath", "The Victory"], ["Al-Hujuraat", "The Inner Apartments"], ["Qaaf", "The letter Qaaf"], ["Adh-Dhaariyat", "The Winnowing Winds"], ["At-Tur", "The Mount"], ["An-Najm", "The Star"], ["Al-Qamar", "The Moon"], ["Ar-Rahmaan", "The Beneficent"], ["Al-Waaqia", "The Inevitable"], ["Al-Hadid", "The Iron"], ["Al-Mujaadila", "The Pleading Woman"], ["Al-Hashr", "The Exile"], ["Al-Mumtahana", "She that is to be examined"], ["As-Saff", "The Ranks"], ["Al-Jumu'a", "Friday"], ["Al-Munaafiqoon", "The Hypocrites"], ["At-Taghaabun", "Mutual Disillusion"], ["At-Talaaq", "Divorce"], ["At-Tahrim", "The Prohibition"], ["Al-Mulk", "The Sovereignty"], ["Al-Qalam", "The Pen"], ["Al-Haaqqa", "The Reality"], ["Al-Ma'aarij", "The Ascending Stairways"], ["Nooh", "Noah"], ["Al-Jinn", "The Jinn"], ["Al-Muzzammil", "The Enshrouded One"], ["Al-Muddaththir", "The Cloaked One"], ["Al-Qiyaama", "The Resurrection"], ["Al-Insaan", "Man"], ["Al-Mursalaat", "The Emissaries"], ["An-Naba", "The Announcement"], ["An-Naazi'aat", "Those who drag forth"], ["Abasa", "He frowned"], ["At-Takwir", "The Overthrowing"], ["Al-Infitaar", "The Cleaving"], ["Al-Mutaffifin", "Defrauding"], ["Al-Inshiqaaq", "The Splitting Open"], ["Al-Burooj", "The Constellations"], ["At-Taariq", "The Morning Star"], ["Al-A'laa", "The Most High"], ["Al-Ghaashiya", "The Overwhelming"], ["Al-Fajr", "The Dawn"], ["Al-Balad", "The City"], ["Ash-Shams", "The Sun"], ["Al-Lail", "The Night"], ["Ad-Dhuhaa", "The Morning Hours"], ["Ash-Sharh", "The Consolation"], ["At-Tin", "The Fig"], ["Al-Alaq", "The Clot"], ["Al-Qadr", "The Power, Fate"], ["Al-Bayyina", "The Evidence"], ["Az-Zalzala", "The Earthquake"], ["Al-Aadiyaat", "The Chargers"], ["Al-Qaari'a", "The Calamity"], ["At-Takaathur", "Competition"], ["Al-Asr", "The Declining Day, Epoch"], ["Al-Humaza", "The Traducer"], ["Al-Fil", "The Elephant"], ["Quraish", "Quraysh"], ["Al-Maa'un", "Almsgiving"], ["Al-Kawthar", "Abundance"], ["Al-Kaafiroon", "The Disbelievers"], ["An-Nasr", "Divine Support"], ["Al-Masad", "The Palm Fibre"], ["Al-Ikhlaas", "Sincerity"], ["Al-Falaq", "The Dawn"], ["An-Naas", "Mankind"]];
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.en.js b/lib_cjs/i18n/sura.en.js
deleted file mode 100644
index 1368064..0000000
--- a/lib_cjs/i18n/sura.en.js
+++ /dev/null
@@ -1,121 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.suraNames = void 0;
-exports.suraNames = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-//# sourceMappingURL=sura.en.js.map
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.en.js.map b/lib_cjs/i18n/sura.en.js.map
deleted file mode 100644
index 1e27de7..0000000
--- a/lib_cjs/i18n/sura.en.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.en.js","sourceRoot":"","sources":["../../src/i18n/sura.en.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.ru.cjs b/lib_cjs/i18n/sura.ru.cjs
new file mode 100644
index 0000000..0c7784b
--- /dev/null
+++ b/lib_cjs/i18n/sura.ru.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.suraNames = void 0;
+const suraNames = exports.suraNames = [[], ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"], ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"], ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"], ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"], ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"], ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"], ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"], ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"], ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"], ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"], ["\u0425\u0443\u0434", "\u0425\u0443\u0434"], ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"], ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"], ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"], ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"], ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"], ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"], ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"], ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"], ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"], ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"], ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"], ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"], ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"], ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"], ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"], ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"], ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"], ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"], ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"], ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"], ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"], ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"], ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"], ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"], ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"], ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"], ["\u0421\u0430\u0434", "\u0421\u0430\u0434"], ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"], ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"], ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"], ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"], ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"], ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"], ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"], ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"], ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"], ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"], ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"], ["\u041A\u0430\u0444", "\u041A\u0430\u0444"], ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"], ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"], ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"], ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"], ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"], ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"], ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"], ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"], ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"], ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"], ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"], ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"], ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"], ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"], ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"], ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"], ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"], ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"], ["\u041D\u0443\u0445", "\u041D\u043E\u0439"], ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"], ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"], ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"], ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"], ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"], ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"], ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"], ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"], ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"], ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"], ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"], ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"], ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"], ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"], ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"], ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"], ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"], ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"], ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"], ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"], ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"], ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"], ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"], ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"], ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"], ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"], ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"], ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"], ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"], ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"], ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"], ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"], ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"], ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"], ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"], ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"], ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"], ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"], ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"], ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]];
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.ru.js b/lib_cjs/i18n/sura.ru.js
deleted file mode 100644
index 944292b..0000000
--- a/lib_cjs/i18n/sura.ru.js
+++ /dev/null
@@ -1,121 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.suraNames = void 0;
-exports.suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-//# sourceMappingURL=sura.ru.js.map
\ No newline at end of file
diff --git a/lib_cjs/i18n/sura.ru.js.map b/lib_cjs/i18n/sura.ru.js.map
deleted file mode 100644
index 0ff5ebb..0000000
--- a/lib_cjs/i18n/sura.ru.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.ru.js","sourceRoot":"","sources":["../../src/i18n/sura.ru.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/index.cjs b/lib_cjs/index.cjs
new file mode 100644
index 0000000..944922f
--- /dev/null
+++ b/lib_cjs/index.cjs
@@ -0,0 +1,220 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+Object.defineProperty(exports, "HizbQuarterList", {
+  enumerable: true,
+  get: function () {
+    return _hizbList.HizbQuarterList;
+  }
+});
+Object.defineProperty(exports, "JuzList", {
+  enumerable: true,
+  get: function () {
+    return _juzList.JuzList;
+  }
+});
+Object.defineProperty(exports, "ManzilList", {
+  enumerable: true,
+  get: function () {
+    return _manzilList.ManzilList;
+  }
+});
+Object.defineProperty(exports, "PageList", {
+  enumerable: true,
+  get: function () {
+    return _pageList.PageList;
+  }
+});
+Object.defineProperty(exports, "RukuList", {
+  enumerable: true,
+  get: function () {
+    return _rukuList.RukuList;
+  }
+});
+Object.defineProperty(exports, "SajdaList", {
+  enumerable: true,
+  get: function () {
+    return _sajdaList.SajdaList;
+  }
+});
+Object.defineProperty(exports, "SuraList", {
+  enumerable: true,
+  get: function () {
+    return _surahList.SuraList;
+  }
+});
+Object.defineProperty(exports, "ayaStringSplitter", {
+  enumerable: true,
+  get: function () {
+    return _ayaStringSplitter.ayaStringSplitter;
+  }
+});
+Object.defineProperty(exports, "checkValidAyahId", {
+  enumerable: true,
+  get: function () {
+    return _validation.checkValidAyahId;
+  }
+});
+Object.defineProperty(exports, "checkValidSurah", {
+  enumerable: true,
+  get: function () {
+    return _validation.checkValidSurah;
+  }
+});
+Object.defineProperty(exports, "checkValidSurahAyah", {
+  enumerable: true,
+  get: function () {
+    return _validation.checkValidSurahAyah;
+  }
+});
+Object.defineProperty(exports, "findAyaidBySurah", {
+  enumerable: true,
+  get: function () {
+    return _findAyaidBySurah.findAyaidBySurah;
+  }
+});
+Object.defineProperty(exports, "findJuz", {
+  enumerable: true,
+  get: function () {
+    return _findJuz.findJuz;
+  }
+});
+Object.defineProperty(exports, "findJuzAndShift", {
+  enumerable: true,
+  get: function () {
+    return _findJuzAndShift.findJuzAndShift;
+  }
+});
+Object.defineProperty(exports, "findJuzByAyaid", {
+  enumerable: true,
+  get: function () {
+    return _findJuzByAyaid.findJuzByAyaid;
+  }
+});
+Object.defineProperty(exports, "findJuzHizb", {
+  enumerable: true,
+  get: function () {
+    return _findJuzHizb.findJuzHizb;
+  }
+});
+Object.defineProperty(exports, "findJuzHizbByAyaid", {
+  enumerable: true,
+  get: function () {
+    return _findJuzHizbByAyaid.findJuzHizbByAyaid;
+  }
+});
+Object.defineProperty(exports, "findJuzMetaBySurah", {
+  enumerable: true,
+  get: function () {
+    return _findJuzMetaBySurah.findJuzMetaBySurah;
+  }
+});
+Object.defineProperty(exports, "findPage", {
+  enumerable: true,
+  get: function () {
+    return _findPage.findPage;
+  }
+});
+Object.defineProperty(exports, "findRangeAroundAyah", {
+  enumerable: true,
+  get: function () {
+    return _findRangeAroundAyah.findRangeAroundAyah;
+  }
+});
+Object.defineProperty(exports, "findSurahByAyaid", {
+  enumerable: true,
+  get: function () {
+    return _findSurahByAyaid.findSurahByAyaid;
+  }
+});
+Object.defineProperty(exports, "getAyaCountinSura", {
+  enumerable: true,
+  get: function () {
+    return _getAyaCountinSura.getAyaCountinSura;
+  }
+});
+Object.defineProperty(exports, "getSurahMeta", {
+  enumerable: true,
+  get: function () {
+    return _getSurahMeta.getSurahMeta;
+  }
+});
+Object.defineProperty(exports, "isAyahJuzFirst", {
+  enumerable: true,
+  get: function () {
+    return _isAyahJuzFirst.isAyahJuzFirst;
+  }
+});
+Object.defineProperty(exports, "isAyahPageFirst", {
+  enumerable: true,
+  get: function () {
+    return _isAyahPageFirst.isAyahPageFirst;
+  }
+});
+Object.defineProperty(exports, "meta", {
+  enumerable: true,
+  get: function () {
+    return _const.meta;
+  }
+});
+Object.defineProperty(exports, "nextAyah", {
+  enumerable: true,
+  get: function () {
+    return _nextAyah.nextAyah;
+  }
+});
+Object.defineProperty(exports, "pageMeta", {
+  enumerable: true,
+  get: function () {
+    return _pageMeta.pageMeta;
+  }
+});
+Object.defineProperty(exports, "prevAyah", {
+  enumerable: true,
+  get: function () {
+    return _prevAyah.prevAyah;
+  }
+});
+Object.defineProperty(exports, "suraNamesEn", {
+  enumerable: true,
+  get: function () {
+    return _sura.suraNames;
+  }
+});
+Object.defineProperty(exports, "suraNamesRu", {
+  enumerable: true,
+  get: function () {
+    return _sura2.suraNames;
+  }
+});
+var _ayaStringSplitter = require("./ayaStringSplitter.cjs");
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findJuz = require("./findJuz.cjs");
+var _findJuzAndShift = require("./findJuzAndShift.cjs");
+var _findJuzByAyaid = require("./findJuzByAyaid.cjs");
+var _findJuzHizb = require("./findJuzHizb.cjs");
+var _findJuzHizbByAyaid = require("./findJuzHizbByAyaid.cjs");
+var _findJuzMetaBySurah = require("./findJuzMetaBySurah.cjs");
+var _findPage = require("./findPage.cjs");
+var _findRangeAroundAyah = require("./findRangeAroundAyah.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _getAyaCountinSura = require("./getAyaCountinSura.cjs");
+var _getSurahMeta = require("./getSurahMeta.cjs");
+var _isAyahJuzFirst = require("./isAyahJuzFirst.cjs");
+var _isAyahPageFirst = require("./isAyahPageFirst.cjs");
+var _hizbList = require("./lists/hizbList.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _manzilList = require("./lists/manzilList.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _rukuList = require("./lists/rukuList.cjs");
+var _sajdaList = require("./lists/sajdaList.cjs");
+var _surahList = require("./lists/surahList.cjs");
+var _nextAyah = require("./nextAyah.cjs");
+var _pageMeta = require("./pageMeta.cjs");
+var _prevAyah = require("./prevAyah.cjs");
+var _validation = require("./validation.cjs");
+var _sura = require("./i18n/sura.en.cjs");
+var _sura2 = require("./i18n/sura.ru.cjs");
\ No newline at end of file
diff --git a/lib_cjs/index.js b/lib_cjs/index.js
deleted file mode 100644
index a7b1c15..0000000
--- a/lib_cjs/index.js
+++ /dev/null
@@ -1,77 +0,0 @@
-"use strict";
-// Quran Meta
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.prevAyah = exports.pageMeta = exports.nextAyah = exports.SuraList = exports.SajdaList = exports.PageList = exports.ManzilList = exports.JuzList = exports.HizbQuarterList = exports.isAyahPageFirst = exports.isAyahJuzFirst = exports.getSurahMeta = exports.getAyaCountinSura = exports.findSurahByAyaid = exports.findRangeAroundAyah = exports.findPage = exports.findJuzMetaBySurah = exports.findJuzHizbByAyaid = exports.findJuzHizb = exports.findJuzByAyaid = exports.findJuzAndShift = exports.findJuz = exports.findAyaidBySurah = exports.meta = exports.checkValidSurahAyah = exports.checkValidSurah = exports.checkValidAyahId = exports.ayaStringSplitter = exports.RukuList = exports.suraNamesRu = exports.suraNamesEn = void 0;
-// export {
-//   AyahId,
-//   AyahNo, Juz, JuzMeta, Page, PageMeta, Sajda,
-//   Surah, SurahAyah, SurahMeta
-// }
-//export default QuranMeta;
-//------------------ Sura Data ---------------------
-var sura_en_1 = require("./i18n/sura.en");
-Object.defineProperty(exports, "suraNamesEn", { enumerable: true, get: function () { return sura_en_1.suraNames; } });
-var sura_ru_1 = require("./i18n/sura.ru");
-Object.defineProperty(exports, "suraNamesRu", { enumerable: true, get: function () { return sura_ru_1.suraNames; } });
-//------------------ Ruku Data ---------------------
-// export Ruku  from "~/js/qdata-ruku.json"
-var rukuList_1 = require("./lists/rukuList");
-Object.defineProperty(exports, "RukuList", { enumerable: true, get: function () { return rukuList_1.RukuList; } });
-//export default QuranMeta;
-var ayaStringSplitter_1 = require("./ayaStringSplitter");
-Object.defineProperty(exports, "ayaStringSplitter", { enumerable: true, get: function () { return ayaStringSplitter_1.ayaStringSplitter; } });
-var checkValidAyahId_1 = require("./checkValidAyahId");
-Object.defineProperty(exports, "checkValidAyahId", { enumerable: true, get: function () { return checkValidAyahId_1.checkValidAyahId; } });
-var checkValidSurah_1 = require("./checkValidSurah");
-Object.defineProperty(exports, "checkValidSurah", { enumerable: true, get: function () { return checkValidSurah_1.checkValidSurah; } });
-var checkValidSurahAyah_1 = require("./checkValidSurahAyah");
-Object.defineProperty(exports, "checkValidSurahAyah", { enumerable: true, get: function () { return checkValidSurahAyah_1.checkValidSurahAyah; } });
-var const_1 = require("./const");
-Object.defineProperty(exports, "meta", { enumerable: true, get: function () { return const_1.meta; } });
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-Object.defineProperty(exports, "findAyaidBySurah", { enumerable: true, get: function () { return findAyaidBySurah_1.findAyaidBySurah; } });
-var findJuz_1 = require("./findJuz");
-Object.defineProperty(exports, "findJuz", { enumerable: true, get: function () { return findJuz_1.findJuz; } });
-var findJuzAndShift_1 = require("./findJuzAndShift");
-Object.defineProperty(exports, "findJuzAndShift", { enumerable: true, get: function () { return findJuzAndShift_1.findJuzAndShift; } });
-var findJuzByAyaid_1 = require("./findJuzByAyaid");
-Object.defineProperty(exports, "findJuzByAyaid", { enumerable: true, get: function () { return findJuzByAyaid_1.findJuzByAyaid; } });
-var findJuzHizb_1 = require("./findJuzHizb");
-Object.defineProperty(exports, "findJuzHizb", { enumerable: true, get: function () { return findJuzHizb_1.findJuzHizb; } });
-var findJuzHizbByAyaid_1 = require("./findJuzHizbByAyaid");
-Object.defineProperty(exports, "findJuzHizbByAyaid", { enumerable: true, get: function () { return findJuzHizbByAyaid_1.findJuzHizbByAyaid; } });
-var findJuzMetaBySurah_1 = require("./findJuzMetaBySurah");
-Object.defineProperty(exports, "findJuzMetaBySurah", { enumerable: true, get: function () { return findJuzMetaBySurah_1.findJuzMetaBySurah; } });
-var findPage_1 = require("./findPage");
-Object.defineProperty(exports, "findPage", { enumerable: true, get: function () { return findPage_1.findPage; } });
-var findRangeAroundAyah_1 = require("./findRangeAroundAyah");
-Object.defineProperty(exports, "findRangeAroundAyah", { enumerable: true, get: function () { return findRangeAroundAyah_1.findRangeAroundAyah; } });
-var findSurahByAyaid_1 = require("./findSurahByAyaid");
-Object.defineProperty(exports, "findSurahByAyaid", { enumerable: true, get: function () { return findSurahByAyaid_1.findSurahByAyaid; } });
-var getAyaCountinSura_1 = require("./getAyaCountinSura");
-Object.defineProperty(exports, "getAyaCountinSura", { enumerable: true, get: function () { return getAyaCountinSura_1.getAyaCountinSura; } });
-var getSurahMeta_1 = require("./getSurahMeta");
-Object.defineProperty(exports, "getSurahMeta", { enumerable: true, get: function () { return getSurahMeta_1.getSurahMeta; } });
-var isAyahJuzFirst_1 = require("./isAyahJuzFirst");
-Object.defineProperty(exports, "isAyahJuzFirst", { enumerable: true, get: function () { return isAyahJuzFirst_1.isAyahJuzFirst; } });
-var isAyahPageFirst_1 = require("./isAyahPageFirst");
-Object.defineProperty(exports, "isAyahPageFirst", { enumerable: true, get: function () { return isAyahPageFirst_1.isAyahPageFirst; } });
-var hizbList_1 = require("./lists/hizbList");
-Object.defineProperty(exports, "HizbQuarterList", { enumerable: true, get: function () { return hizbList_1.HizbQuarterList; } });
-var juzList_1 = require("./lists/juzList");
-Object.defineProperty(exports, "JuzList", { enumerable: true, get: function () { return juzList_1.JuzList; } });
-var manzilList_1 = require("./lists/manzilList");
-Object.defineProperty(exports, "ManzilList", { enumerable: true, get: function () { return manzilList_1.ManzilList; } });
-var pageList_1 = require("./lists/pageList");
-Object.defineProperty(exports, "PageList", { enumerable: true, get: function () { return pageList_1.PageList; } });
-var sajdaList_1 = require("./lists/sajdaList");
-Object.defineProperty(exports, "SajdaList", { enumerable: true, get: function () { return sajdaList_1.SajdaList; } });
-var surahList_1 = require("./lists/surahList");
-Object.defineProperty(exports, "SuraList", { enumerable: true, get: function () { return surahList_1.SuraList; } });
-var nextAyah_1 = require("./nextAyah");
-Object.defineProperty(exports, "nextAyah", { enumerable: true, get: function () { return nextAyah_1.nextAyah; } });
-var pageMeta_1 = require("./pageMeta");
-Object.defineProperty(exports, "pageMeta", { enumerable: true, get: function () { return pageMeta_1.pageMeta; } });
-var prevAyah_1 = require("./prevAyah");
-Object.defineProperty(exports, "prevAyah", { enumerable: true, get: function () { return prevAyah_1.prevAyah; } });
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib_cjs/index.js.map b/lib_cjs/index.js.map
deleted file mode 100644
index 198a248..0000000
--- a/lib_cjs/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,aAAa;;;AAEb,WAAW;AACX,YAAY;AACZ,iDAAiD;AACjD,gCAAgC;AAChC,IAAI;AACJ,2BAA2B;AAC3B,oDAAoD;AAEpD,0CAAyD;AAAhD,sGAAA,SAAS,OAAe;AACjC,0CAAyD;AAAhD,sGAAA,SAAS,OAAe;AAGjC,oDAAoD;AACpD,2CAA2C;AAC3C,6CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AAEjB,2BAA2B;AAC3B,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAC1B,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,iCAA8B;AAArB,6FAAA,IAAI,OAAA;AACb,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,qCAAmC;AAA1B,kGAAA,OAAO,OAAA;AAChB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,mDAAiD;AAAxC,gHAAA,cAAc,OAAA;AACvB,6CAA2C;AAAlC,0GAAA,WAAW,OAAA;AACpB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,6DAA2D;AAAlD,0HAAA,mBAAmB,OAAA;AAC5B,uDAAqD;AAA5C,oHAAA,gBAAgB,OAAA;AACzB,yDAAuD;AAA9C,sHAAA,iBAAiB,OAAA;AAC1B,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,mDAAiD;AAAxC,gHAAA,cAAc,OAAA;AACvB,qDAAmD;AAA1C,kHAAA,eAAe,OAAA;AACxB,6CAAkD;AAAzC,2GAAA,eAAe,OAAA;AACxB,2CAAyC;AAAhC,kGAAA,OAAO,OAAA;AAChB,iDAA+C;AAAtC,wGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,oGAAA,QAAQ,OAAA;AACjB,+CAA6C;AAApC,sGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,qGAAA,QAAQ,OAAA;AACjB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA;AACjB,uCAAqC;AAA5B,oGAAA,QAAQ,OAAA"}
\ No newline at end of file
diff --git a/lib_cjs/isAyahJuzFirst.cjs b/lib_cjs/isAyahJuzFirst.cjs
new file mode 100644
index 0000000..5332e57
--- /dev/null
+++ b/lib_cjs/isAyahJuzFirst.cjs
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.isAyahJuzFirst = isAyahJuzFirst;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _juzList = require("./lists/juzList.cjs");
+var _utils = require("./utils.cjs");
+var _validation = require("./validation.cjs");
+function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _utils.binarySearch)(_juzList.JuzList, ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/isAyahJuzFirst.js b/lib_cjs/isAyahJuzFirst.js
deleted file mode 100644
index dc52767..0000000
--- a/lib_cjs/isAyahJuzFirst.js
+++ /dev/null
@@ -1,26 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.isAyahJuzFirst = isAyahJuzFirst;
-var checkValidAyahId_1 = require("./checkValidAyahId");
-var checkValidSurah_1 = require("./checkValidSurah");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var juzList_1 = require("./lists/juzList");
-var utils_1 = require("./utils");
-/**
- * Returns the Juz (part) number that the given Ayah (verse) belongs to.
- *
- *
- * @param surah - The Surah (chapter) number.
- * @param ayah - The Ayah (verse) number.
- * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
- * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
- */
-function isAyahJuzFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
-        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
-    return (0, utils_1.binarySearch)(juzList_1.JuzList, ayahId);
-    // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-//# sourceMappingURL=isAyahJuzFirst.js.map
\ No newline at end of file
diff --git a/lib_cjs/isAyahJuzFirst.js.map b/lib_cjs/isAyahJuzFirst.js.map
deleted file mode 100644
index ea5af5f..0000000
--- a/lib_cjs/isAyahJuzFirst.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isAyahJuzFirst.js","sourceRoot":"","sources":["../src/isAyahJuzFirst.ts"],"names":[],"mappings":";;AAgBA,wCAWC;AA3BD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,2CAA0C;AAE1C,iCAAuC;AAEvC;;;;;;;;GAQG;AACH,SAAgB,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,IAAA,oBAAY,EAAC,iBAAO,EAAE,MAAM,CAAC,CAAC;IACrC,uDAAuD;AACzD,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/isAyahPageFirst.cjs b/lib_cjs/isAyahPageFirst.cjs
new file mode 100644
index 0000000..917a9e7
--- /dev/null
+++ b/lib_cjs/isAyahPageFirst.cjs
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.isAyahPageFirst = isAyahPageFirst;
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _pageList = require("./lists/pageList.cjs");
+var _utils = require("./utils.cjs");
+var _validation = require("./validation.cjs");
+function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? (0, _validation.checkValidAyahId)(ayah) && ayah : (0, _validation.checkValidSurah)(surah) && (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _utils.binarySearch)(_pageList.PageList, ayahId);
+}
\ No newline at end of file
diff --git a/lib_cjs/isAyahPageFirst.js b/lib_cjs/isAyahPageFirst.js
deleted file mode 100644
index d8ccf73..0000000
--- a/lib_cjs/isAyahPageFirst.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.isAyahPageFirst = isAyahPageFirst;
-var checkValidAyahId_1 = require("./checkValidAyahId");
-var checkValidSurah_1 = require("./checkValidSurah");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var pageList_1 = require("./lists/pageList");
-var utils_1 = require("./utils");
-/**
- * Determines if the given ayah is the first ayah of a juz.
- *
- * @param surah - The surah number.
- * @param ayah - The ayah number.
- * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
- * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
- */
-function isAyahPageFirst(surah, ayah, ayahMode) {
-    if (ayahMode === void 0) { ayahMode = false; }
-    var ayahId = ayahMode
-        ? ((0, checkValidAyahId_1.checkValidAyahId)(ayah) && ayah)
-        : ((0, checkValidSurah_1.checkValidSurah)(surah) && (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah));
-    return (0, utils_1.binarySearch)(pageList_1.PageList, ayahId);
-    // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-//# sourceMappingURL=isAyahPageFirst.js.map
\ No newline at end of file
diff --git a/lib_cjs/isAyahPageFirst.js.map b/lib_cjs/isAyahPageFirst.js.map
deleted file mode 100644
index 0f4e0ec..0000000
--- a/lib_cjs/isAyahPageFirst.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isAyahPageFirst.js","sourceRoot":"","sources":["../src/isAyahPageFirst.ts"],"names":[],"mappings":";;AAgBA,0CAWC;AA3BD,uDAAsD;AACtD,qDAAoD;AACpD,uDAAsD;AACtD,6CAA4C;AAE5C,iCAAuC;AAGvC;;;;;;;GAOG;AACH,SAAgB,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAgB;IAAhB,yBAAA,EAAA,gBAAgB;IAEhB,IAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,IAAA,mCAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,IAAA,iCAAe,EAAC,KAAK,CAAC,IAAI,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,IAAA,oBAAY,EAAC,mBAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,wDAAwD;AAC1D,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/json/qdata-hizb.json b/lib_cjs/json/qdata-hizb.json
new file mode 100644
index 0000000..a0acf70
--- /dev/null
+++ b/lib_cjs/json/qdata-hizb.json
@@ -0,0 +1,244 @@
+[
+  [],
+  [1, 1],
+  [2, 26],
+  [2, 44],
+  [2, 60],
+  [2, 75],
+  [2, 92],
+  [2, 106],
+  [2, 124],
+  [2, 142],
+  [2, 158],
+  [2, 177],
+  [2, 189],
+  [2, 203],
+  [2, 219],
+  [2, 233],
+  [2, 243],
+  [2, 253],
+  [2, 263],
+  [2, 272],
+  [2, 283],
+  [3, 15],
+  [3, 33],
+  [3, 52],
+  [3, 75],
+  [3, 93],
+  [3, 113],
+  [3, 133],
+  [3, 153],
+  [3, 171],
+  [3, 186],
+  [4, 1],
+  [4, 12],
+  [4, 24],
+  [4, 36],
+  [4, 58],
+  [4, 74],
+  [4, 88],
+  [4, 100],
+  [4, 114],
+  [4, 135],
+  [4, 148],
+  [4, 163],
+  [5, 1],
+  [5, 12],
+  [5, 27],
+  [5, 41],
+  [5, 51],
+  [5, 67],
+  [5, 82],
+  [5, 97],
+  [5, 109],
+  [6, 13],
+  [6, 36],
+  [6, 59],
+  [6, 74],
+  [6, 95],
+  [6, 111],
+  [6, 127],
+  [6, 141],
+  [6, 151],
+  [7, 1],
+  [7, 31],
+  [7, 47],
+  [7, 65],
+  [7, 88],
+  [7, 117],
+  [7, 142],
+  [7, 156],
+  [7, 171],
+  [7, 189],
+  [8, 1],
+  [8, 22],
+  [8, 41],
+  [8, 61],
+  [9, 1],
+  [9, 19],
+  [9, 34],
+  [9, 46],
+  [9, 60],
+  [9, 75],
+  [9, 93],
+  [9, 111],
+  [9, 122],
+  [10, 11],
+  [10, 26],
+  [10, 53],
+  [10, 71],
+  [10, 90],
+  [11, 6],
+  [11, 24],
+  [11, 41],
+  [11, 61],
+  [11, 84],
+  [11, 108],
+  [12, 7],
+  [12, 30],
+  [12, 53],
+  [12, 77],
+  [12, 101],
+  [13, 5],
+  [13, 19],
+  [13, 35],
+  [14, 10],
+  [14, 28],
+  [15, 1],
+  [15, 50],
+  [16, 1],
+  [16, 30],
+  [16, 51],
+  [16, 75],
+  [16, 90],
+  [16, 111],
+  [17, 1],
+  [17, 23],
+  [17, 50],
+  [17, 70],
+  [17, 99],
+  [18, 17],
+  [18, 32],
+  [18, 51],
+  [18, 75],
+  [18, 99],
+  [19, 22],
+  [19, 59],
+  [20, 1],
+  [20, 55],
+  [20, 83],
+  [20, 111],
+  [21, 1],
+  [21, 29],
+  [21, 51],
+  [21, 83],
+  [22, 1],
+  [22, 19],
+  [22, 38],
+  [22, 60],
+  [23, 1],
+  [23, 36],
+  [23, 75],
+  [24, 1],
+  [24, 21],
+  [24, 35],
+  [24, 53],
+  [25, 1],
+  [25, 21],
+  [25, 53],
+  [26, 1],
+  [26, 52],
+  [26, 111],
+  [26, 181],
+  [27, 1],
+  [27, 27],
+  [27, 56],
+  [27, 82],
+  [28, 12],
+  [28, 29],
+  [28, 51],
+  [28, 76],
+  [29, 1],
+  [29, 26],
+  [29, 46],
+  [30, 1],
+  [30, 31],
+  [30, 54],
+  [31, 22],
+  [32, 11],
+  [33, 1],
+  [33, 18],
+  [33, 31],
+  [33, 51],
+  [33, 60],
+  [34, 10],
+  [34, 24],
+  [34, 46],
+  [35, 15],
+  [35, 41],
+  [36, 28],
+  [36, 60],
+  [37, 22],
+  [37, 83],
+  [37, 145],
+  [38, 21],
+  [38, 52],
+  [39, 8],
+  [39, 32],
+  [39, 53],
+  [40, 1],
+  [40, 21],
+  [40, 41],
+  [40, 66],
+  [41, 9],
+  [41, 25],
+  [41, 47],
+  [42, 13],
+  [42, 27],
+  [42, 51],
+  [43, 24],
+  [43, 57],
+  [44, 17],
+  [45, 12],
+  [46, 1],
+  [46, 21],
+  [47, 10],
+  [47, 33],
+  [48, 18],
+  [49, 1],
+  [49, 14],
+  [50, 27],
+  [51, 31],
+  [52, 24],
+  [53, 26],
+  [54, 9],
+  [55, 1],
+  [56, 1],
+  [56, 75],
+  [57, 16],
+  [58, 1],
+  [58, 14],
+  [59, 11],
+  [60, 7],
+  [62, 1],
+  [63, 4],
+  [65, 1],
+  [66, 1],
+  [67, 1],
+  [68, 1],
+  [69, 1],
+  [70, 19],
+  [72, 1],
+  [73, 20],
+  [75, 1],
+  [76, 19],
+  [78, 1],
+  [80, 1],
+  [82, 1],
+  [84, 1],
+  [87, 1],
+  [90, 1],
+  [94, 1],
+  [100, 9],
+  [115, 1]
+]
diff --git a/lib_cjs/json/qdata-page.json b/lib_cjs/json/qdata-page.json
new file mode 100644
index 0000000..c1ac363
--- /dev/null
+++ b/lib_cjs/json/qdata-page.json
@@ -0,0 +1,608 @@
+[
+  [0, 0],
+  [1, 1],
+  [2, 1],
+  [2, 6],
+  [2, 17],
+  [2, 25],
+  [2, 30],
+  [2, 38],
+  [2, 49],
+  [2, 58],
+  [2, 62],
+  [2, 70],
+  [2, 77],
+  [2, 84],
+  [2, 89],
+  [2, 94],
+  [2, 102],
+  [2, 106],
+  [2, 113],
+  [2, 120],
+  [2, 127],
+  [2, 135],
+  [2, 142],
+  [2, 146],
+  [2, 154],
+  [2, 164],
+  [2, 170],
+  [2, 177],
+  [2, 182],
+  [2, 187],
+  [2, 191],
+  [2, 197],
+  [2, 203],
+  [2, 211],
+  [2, 216],
+  [2, 220],
+  [2, 225],
+  [2, 231],
+  [2, 234],
+  [2, 238],
+  [2, 246],
+  [2, 249],
+  [2, 253],
+  [2, 257],
+  [2, 260],
+  [2, 265],
+  [2, 270],
+  [2, 275],
+  [2, 282],
+  [2, 283],
+  [3, 1],
+  [3, 10],
+  [3, 16],
+  [3, 23],
+  [3, 30],
+  [3, 38],
+  [3, 46],
+  [3, 53],
+  [3, 62],
+  [3, 71],
+  [3, 78],
+  [3, 84],
+  [3, 92],
+  [3, 101],
+  [3, 109],
+  [3, 116],
+  [3, 122],
+  [3, 133],
+  [3, 141],
+  [3, 149],
+  [3, 154],
+  [3, 158],
+  [3, 166],
+  [3, 174],
+  [3, 181],
+  [3, 187],
+  [3, 195],
+  [4, 1],
+  [4, 7],
+  [4, 12],
+  [4, 15],
+  [4, 20],
+  [4, 24],
+  [4, 27],
+  [4, 34],
+  [4, 38],
+  [4, 45],
+  [4, 52],
+  [4, 60],
+  [4, 66],
+  [4, 75],
+  [4, 80],
+  [4, 87],
+  [4, 92],
+  [4, 95],
+  [4, 102],
+  [4, 106],
+  [4, 114],
+  [4, 122],
+  [4, 128],
+  [4, 135],
+  [4, 141],
+  [4, 148],
+  [4, 155],
+  [4, 163],
+  [4, 171],
+  [4, 176],
+  [5, 3],
+  [5, 6],
+  [5, 10],
+  [5, 14],
+  [5, 18],
+  [5, 24],
+  [5, 32],
+  [5, 37],
+  [5, 42],
+  [5, 46],
+  [5, 51],
+  [5, 58],
+  [5, 65],
+  [5, 71],
+  [5, 77],
+  [5, 83],
+  [5, 90],
+  [5, 96],
+  [5, 104],
+  [5, 109],
+  [5, 114],
+  [6, 1],
+  [6, 9],
+  [6, 19],
+  [6, 28],
+  [6, 36],
+  [6, 45],
+  [6, 53],
+  [6, 60],
+  [6, 69],
+  [6, 74],
+  [6, 82],
+  [6, 91],
+  [6, 95],
+  [6, 102],
+  [6, 111],
+  [6, 119],
+  [6, 125],
+  [6, 132],
+  [6, 138],
+  [6, 143],
+  [6, 147],
+  [6, 152],
+  [6, 158],
+  [7, 1],
+  [7, 12],
+  [7, 23],
+  [7, 31],
+  [7, 38],
+  [7, 44],
+  [7, 52],
+  [7, 58],
+  [7, 68],
+  [7, 74],
+  [7, 82],
+  [7, 88],
+  [7, 96],
+  [7, 105],
+  [7, 121],
+  [7, 131],
+  [7, 138],
+  [7, 144],
+  [7, 150],
+  [7, 156],
+  [7, 160],
+  [7, 164],
+  [7, 171],
+  [7, 179],
+  [7, 188],
+  [7, 196],
+  [8, 1],
+  [8, 9],
+  [8, 17],
+  [8, 26],
+  [8, 34],
+  [8, 41],
+  [8, 46],
+  [8, 53],
+  [8, 62],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 14],
+  [9, 21],
+  [9, 27],
+  [9, 32],
+  [9, 37],
+  [9, 41],
+  [9, 48],
+  [9, 55],
+  [9, 62],
+  [9, 69],
+  [9, 73],
+  [9, 80],
+  [9, 87],
+  [9, 94],
+  [9, 100],
+  [9, 107],
+  [9, 112],
+  [9, 118],
+  [9, 123],
+  [10, 1],
+  [10, 7],
+  [10, 15],
+  [10, 21],
+  [10, 26],
+  [10, 34],
+  [10, 43],
+  [10, 54],
+  [10, 62],
+  [10, 71],
+  [10, 79],
+  [10, 89],
+  [10, 98],
+  [10, 107],
+  [11, 6],
+  [11, 13],
+  [11, 20],
+  [11, 29],
+  [11, 38],
+  [11, 46],
+  [11, 54],
+  [11, 63],
+  [11, 72],
+  [11, 82],
+  [11, 89],
+  [11, 98],
+  [11, 109],
+  [11, 118],
+  [12, 5],
+  [12, 15],
+  [12, 23],
+  [12, 31],
+  [12, 38],
+  [12, 44],
+  [12, 53],
+  [12, 64],
+  [12, 70],
+  [12, 79],
+  [12, 87],
+  [12, 96],
+  [12, 104],
+  [13, 1],
+  [13, 6],
+  [13, 14],
+  [13, 19],
+  [13, 29],
+  [13, 35],
+  [13, 43],
+  [14, 6],
+  [14, 11],
+  [14, 19],
+  [14, 25],
+  [14, 34],
+  [14, 43],
+  [15, 1],
+  [15, 16],
+  [15, 32],
+  [15, 52],
+  [15, 71],
+  [15, 91],
+  [16, 7],
+  [16, 15],
+  [16, 27],
+  [16, 35],
+  [16, 43],
+  [16, 55],
+  [16, 65],
+  [16, 73],
+  [16, 80],
+  [16, 88],
+  [16, 94],
+  [16, 103],
+  [16, 111],
+  [16, 119],
+  [17, 1],
+  [17, 8],
+  [17, 18],
+  [17, 28],
+  [17, 39],
+  [17, 50],
+  [17, 59],
+  [17, 67],
+  [17, 76],
+  [17, 87],
+  [17, 97],
+  [17, 105],
+  [18, 5],
+  [18, 16],
+  [18, 21],
+  [18, 28],
+  [18, 35],
+  [18, 46],
+  [18, 54],
+  [18, 62],
+  [18, 75],
+  [18, 84],
+  [18, 98],
+  [19, 1],
+  [19, 12],
+  [19, 26],
+  [19, 39],
+  [19, 52],
+  [19, 65],
+  [19, 77],
+  [19, 96],
+  [20, 13],
+  [20, 38],
+  [20, 52],
+  [20, 65],
+  [20, 77],
+  [20, 88],
+  [20, 99],
+  [20, 114],
+  [20, 126],
+  [21, 1],
+  [21, 11],
+  [21, 25],
+  [21, 36],
+  [21, 45],
+  [21, 58],
+  [21, 73],
+  [21, 82],
+  [21, 91],
+  [21, 102],
+  [22, 1],
+  [22, 6],
+  [22, 16],
+  [22, 24],
+  [22, 31],
+  [22, 39],
+  [22, 47],
+  [22, 56],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 18],
+  [23, 28],
+  [23, 43],
+  [23, 60],
+  [23, 75],
+  [23, 90],
+  [23, 105],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 28],
+  [24, 32],
+  [24, 37],
+  [24, 44],
+  [24, 54],
+  [24, 59],
+  [24, 62],
+  [25, 3],
+  [25, 12],
+  [25, 21],
+  [25, 33],
+  [25, 44],
+  [25, 56],
+  [25, 68],
+  [26, 1],
+  [26, 20],
+  [26, 40],
+  [26, 61],
+  [26, 84],
+  [26, 112],
+  [26, 137],
+  [26, 160],
+  [26, 184],
+  [26, 207],
+  [27, 1],
+  [27, 14],
+  [27, 23],
+  [27, 36],
+  [27, 45],
+  [27, 56],
+  [27, 64],
+  [27, 77],
+  [27, 89],
+  [28, 6],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 36],
+  [28, 44],
+  [28, 51],
+  [28, 60],
+  [28, 71],
+  [28, 78],
+  [28, 85],
+  [29, 7],
+  [29, 15],
+  [29, 24],
+  [29, 31],
+  [29, 39],
+  [29, 46],
+  [29, 53],
+  [29, 64],
+  [30, 6],
+  [30, 16],
+  [30, 25],
+  [30, 33],
+  [30, 42],
+  [30, 51],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [31, 29],
+  [32, 1],
+  [32, 12],
+  [32, 21],
+  [33, 1],
+  [33, 7],
+  [33, 16],
+  [33, 23],
+  [33, 31],
+  [33, 36],
+  [33, 44],
+  [33, 51],
+  [33, 55],
+  [33, 63],
+  [34, 1],
+  [34, 8],
+  [34, 15],
+  [34, 23],
+  [34, 32],
+  [34, 40],
+  [34, 49],
+  [35, 4],
+  [35, 12],
+  [35, 19],
+  [35, 31],
+  [35, 39],
+  [35, 45],
+  [36, 13],
+  [36, 28],
+  [36, 41],
+  [36, 55],
+  [36, 71],
+  [37, 1],
+  [37, 25],
+  [37, 52],
+  [37, 77],
+  [37, 103],
+  [37, 127],
+  [37, 154],
+  [38, 1],
+  [38, 17],
+  [38, 27],
+  [38, 43],
+  [38, 62],
+  [38, 84],
+  [39, 6],
+  [39, 11],
+  [39, 22],
+  [39, 32],
+  [39, 41],
+  [39, 48],
+  [39, 57],
+  [39, 68],
+  [39, 75],
+  [40, 8],
+  [40, 17],
+  [40, 26],
+  [40, 34],
+  [40, 41],
+  [40, 50],
+  [40, 59],
+  [40, 67],
+  [40, 78],
+  [41, 1],
+  [41, 12],
+  [41, 21],
+  [41, 30],
+  [41, 39],
+  [41, 47],
+  [42, 1],
+  [42, 11],
+  [42, 16],
+  [42, 23],
+  [42, 32],
+  [42, 45],
+  [42, 52],
+  [43, 11],
+  [43, 23],
+  [43, 34],
+  [43, 48],
+  [43, 61],
+  [43, 74],
+  [44, 1],
+  [44, 19],
+  [44, 40],
+  [45, 1],
+  [45, 14],
+  [45, 23],
+  [45, 33],
+  [46, 6],
+  [46, 15],
+  [46, 21],
+  [46, 29],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 30],
+  [48, 1],
+  [48, 10],
+  [48, 16],
+  [48, 24],
+  [48, 29],
+  [49, 5],
+  [49, 12],
+  [50, 1],
+  [50, 16],
+  [50, 36],
+  [51, 7],
+  [51, 31],
+  [51, 52],
+  [52, 15],
+  [52, 32],
+  [53, 1],
+  [53, 27],
+  [53, 45],
+  [54, 7],
+  [54, 28],
+  [54, 50],
+  [55, 17],
+  [55, 41],
+  [55, 68],
+  [56, 17],
+  [56, 51],
+  [56, 77],
+  [57, 4],
+  [57, 12],
+  [57, 19],
+  [57, 25],
+  [58, 1],
+  [58, 7],
+  [58, 12],
+  [58, 22],
+  [59, 4],
+  [59, 10],
+  [59, 17],
+  [60, 1],
+  [60, 6],
+  [60, 12],
+  [61, 6],
+  [62, 1],
+  [62, 9],
+  [63, 5],
+  [64, 1],
+  [64, 10],
+  [65, 1],
+  [65, 6],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 13],
+  [67, 27],
+  [68, 16],
+  [68, 43],
+  [69, 9],
+  [69, 35],
+  [70, 11],
+  [70, 40],
+  [71, 11],
+  [72, 1],
+  [72, 14],
+  [73, 1],
+  [73, 20],
+  [74, 18],
+  [74, 48],
+  [75, 20],
+  [76, 6],
+  [76, 26],
+  [77, 20],
+  [78, 1],
+  [78, 31],
+  [79, 16],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 7],
+  [83, 35],
+  [85, 1],
+  [86, 1],
+  [87, 16],
+  [89, 1],
+  [89, 24],
+  [91, 1],
+  [92, 15],
+  [95, 1],
+  [97, 1],
+  [98, 8],
+  [100, 10],
+  [103, 1],
+  [106, 1],
+  [109, 1],
+  [112, 1],
+  [115, 1]
+]
diff --git a/lib_cjs/json/qdata-ruku.json b/lib_cjs/json/qdata-ruku.json
new file mode 100644
index 0000000..0665163
--- /dev/null
+++ b/lib_cjs/json/qdata-ruku.json
@@ -0,0 +1,559 @@
+[
+  [],
+  [1, 1],
+  [2, 1],
+  [2, 8],
+  [2, 21],
+  [2, 30],
+  [2, 40],
+  [2, 47],
+  [2, 60],
+  [2, 62],
+  [2, 72],
+  [2, 83],
+  [2, 87],
+  [2, 97],
+  [2, 104],
+  [2, 113],
+  [2, 122],
+  [2, 130],
+  [2, 142],
+  [2, 148],
+  [2, 153],
+  [2, 164],
+  [2, 168],
+  [2, 177],
+  [2, 183],
+  [2, 189],
+  [2, 197],
+  [2, 211],
+  [2, 217],
+  [2, 222],
+  [2, 229],
+  [2, 232],
+  [2, 236],
+  [2, 243],
+  [2, 249],
+  [2, 254],
+  [2, 258],
+  [2, 261],
+  [2, 267],
+  [2, 274],
+  [2, 282],
+  [2, 284],
+  [3, 1],
+  [3, 10],
+  [3, 21],
+  [3, 31],
+  [3, 42],
+  [3, 55],
+  [3, 64],
+  [3, 72],
+  [3, 81],
+  [3, 92],
+  [3, 102],
+  [3, 110],
+  [3, 121],
+  [3, 130],
+  [3, 144],
+  [3, 149],
+  [3, 156],
+  [3, 172],
+  [3, 181],
+  [3, 190],
+  [4, 1],
+  [4, 11],
+  [4, 15],
+  [4, 23],
+  [4, 26],
+  [4, 34],
+  [4, 43],
+  [4, 51],
+  [4, 60],
+  [4, 71],
+  [4, 77],
+  [4, 88],
+  [4, 92],
+  [4, 97],
+  [4, 101],
+  [4, 105],
+  [4, 113],
+  [4, 116],
+  [4, 127],
+  [4, 135],
+  [4, 142],
+  [4, 153],
+  [4, 163],
+  [4, 172],
+  [5, 1],
+  [5, 6],
+  [5, 12],
+  [5, 20],
+  [5, 27],
+  [5, 35],
+  [5, 44],
+  [5, 51],
+  [5, 57],
+  [5, 67],
+  [5, 78],
+  [5, 87],
+  [5, 94],
+  [5, 101],
+  [5, 109],
+  [5, 116],
+  [6, 1],
+  [6, 11],
+  [6, 21],
+  [6, 31],
+  [6, 42],
+  [6, 51],
+  [6, 56],
+  [6, 61],
+  [6, 71],
+  [6, 83],
+  [6, 91],
+  [6, 95],
+  [6, 101],
+  [6, 111],
+  [6, 122],
+  [6, 130],
+  [6, 141],
+  [6, 145],
+  [6, 151],
+  [6, 155],
+  [7, 1],
+  [7, 11],
+  [7, 26],
+  [7, 32],
+  [7, 40],
+  [7, 48],
+  [7, 54],
+  [7, 59],
+  [7, 65],
+  [7, 73],
+  [7, 85],
+  [7, 94],
+  [7, 100],
+  [7, 109],
+  [7, 127],
+  [7, 130],
+  [7, 142],
+  [7, 148],
+  [7, 152],
+  [7, 158],
+  [7, 163],
+  [7, 172],
+  [7, 182],
+  [7, 189],
+  [8, 1],
+  [8, 11],
+  [8, 20],
+  [8, 29],
+  [8, 38],
+  [8, 45],
+  [8, 49],
+  [8, 59],
+  [8, 65],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 17],
+  [9, 25],
+  [9, 30],
+  [9, 38],
+  [9, 43],
+  [9, 60],
+  [9, 67],
+  [9, 73],
+  [9, 81],
+  [9, 90],
+  [9, 100],
+  [9, 111],
+  [9, 119],
+  [9, 123],
+  [10, 1],
+  [10, 11],
+  [10, 21],
+  [10, 31],
+  [10, 41],
+  [10, 54],
+  [10, 61],
+  [10, 71],
+  [10, 83],
+  [10, 93],
+  [10, 104],
+  [11, 1],
+  [11, 9],
+  [11, 25],
+  [11, 36],
+  [11, 50],
+  [11, 61],
+  [11, 69],
+  [11, 84],
+  [11, 96],
+  [11, 110],
+  [12, 1],
+  [12, 7],
+  [12, 21],
+  [12, 30],
+  [12, 36],
+  [12, 43],
+  [12, 50],
+  [12, 58],
+  [12, 69],
+  [12, 80],
+  [12, 94],
+  [12, 105],
+  [13, 1],
+  [13, 8],
+  [13, 19],
+  [13, 27],
+  [13, 32],
+  [13, 38],
+  [14, 1],
+  [14, 7],
+  [14, 13],
+  [14, 22],
+  [14, 28],
+  [14, 35],
+  [14, 42],
+  [15, 1],
+  [15, 16],
+  [15, 26],
+  [15, 45],
+  [15, 61],
+  [15, 80],
+  [16, 1],
+  [16, 10],
+  [16, 22],
+  [16, 26],
+  [16, 35],
+  [16, 41],
+  [16, 51],
+  [16, 61],
+  [16, 66],
+  [16, 71],
+  [16, 77],
+  [16, 84],
+  [16, 90],
+  [16, 101],
+  [16, 111],
+  [16, 120],
+  [17, 1],
+  [17, 11],
+  [17, 23],
+  [17, 31],
+  [17, 41],
+  [17, 53],
+  [17, 61],
+  [17, 71],
+  [17, 78],
+  [17, 85],
+  [17, 94],
+  [17, 101],
+  [18, 1],
+  [18, 13],
+  [18, 18],
+  [18, 23],
+  [18, 32],
+  [18, 45],
+  [18, 50],
+  [18, 54],
+  [18, 60],
+  [18, 71],
+  [18, 83],
+  [18, 102],
+  [19, 1],
+  [19, 16],
+  [19, 41],
+  [19, 51],
+  [19, 66],
+  [19, 83],
+  [20, 1],
+  [20, 25],
+  [20, 55],
+  [20, 77],
+  [20, 90],
+  [20, 105],
+  [20, 116],
+  [20, 129],
+  [21, 1],
+  [21, 11],
+  [21, 30],
+  [21, 42],
+  [21, 51],
+  [21, 76],
+  [21, 94],
+  [22, 1],
+  [22, 11],
+  [22, 23],
+  [22, 26],
+  [22, 34],
+  [22, 39],
+  [22, 49],
+  [22, 58],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 23],
+  [23, 33],
+  [23, 51],
+  [23, 78],
+  [23, 93],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 27],
+  [24, 35],
+  [24, 41],
+  [24, 51],
+  [24, 58],
+  [24, 62],
+  [25, 1],
+  [25, 10],
+  [25, 21],
+  [25, 35],
+  [25, 45],
+  [25, 61],
+  [26, 1],
+  [26, 10],
+  [26, 34],
+  [26, 53],
+  [26, 70],
+  [26, 105],
+  [26, 123],
+  [26, 141],
+  [26, 160],
+  [26, 176],
+  [26, 192],
+  [27, 1],
+  [27, 15],
+  [27, 32],
+  [27, 45],
+  [27, 59],
+  [27, 67],
+  [27, 83],
+  [28, 1],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 43],
+  [28, 51],
+  [28, 61],
+  [28, 76],
+  [29, 1],
+  [29, 14],
+  [29, 23],
+  [29, 31],
+  [29, 45],
+  [29, 52],
+  [29, 64],
+  [30, 1],
+  [30, 11],
+  [30, 20],
+  [30, 28],
+  [30, 41],
+  [30, 54],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [32, 1],
+  [32, 12],
+  [32, 23],
+  [33, 1],
+  [33, 9],
+  [33, 21],
+  [33, 28],
+  [33, 35],
+  [33, 41],
+  [33, 53],
+  [33, 59],
+  [33, 69],
+  [34, 1],
+  [34, 10],
+  [34, 22],
+  [34, 31],
+  [34, 37],
+  [34, 46],
+  [35, 1],
+  [35, 8],
+  [35, 15],
+  [35, 27],
+  [35, 38],
+  [36, 1],
+  [36, 13],
+  [36, 33],
+  [36, 51],
+  [36, 68],
+  [37, 1],
+  [37, 22],
+  [37, 75],
+  [37, 114],
+  [37, 139],
+  [38, 1],
+  [38, 15],
+  [38, 27],
+  [38, 41],
+  [38, 65],
+  [39, 1],
+  [39, 10],
+  [39, 22],
+  [39, 32],
+  [39, 42],
+  [39, 53],
+  [39, 64],
+  [39, 71],
+  [40, 1],
+  [40, 10],
+  [40, 21],
+  [40, 28],
+  [40, 38],
+  [40, 51],
+  [40, 61],
+  [40, 69],
+  [40, 79],
+  [41, 1],
+  [41, 9],
+  [41, 19],
+  [41, 26],
+  [41, 33],
+  [41, 45],
+  [42, 1],
+  [42, 10],
+  [42, 20],
+  [42, 30],
+  [42, 44],
+  [43, 1],
+  [43, 16],
+  [43, 26],
+  [43, 36],
+  [43, 46],
+  [43, 57],
+  [43, 68],
+  [44, 1],
+  [44, 30],
+  [44, 43],
+  [45, 1],
+  [45, 12],
+  [45, 22],
+  [45, 27],
+  [46, 1],
+  [46, 11],
+  [46, 21],
+  [46, 27],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 29],
+  [48, 1],
+  [48, 11],
+  [48, 18],
+  [48, 27],
+  [49, 1],
+  [49, 11],
+  [50, 1],
+  [50, 16],
+  [50, 30],
+  [51, 1],
+  [51, 24],
+  [51, 47],
+  [52, 1],
+  [52, 29],
+  [53, 1],
+  [53, 26],
+  [53, 33],
+  [54, 1],
+  [54, 23],
+  [54, 41],
+  [55, 1],
+  [55, 26],
+  [55, 46],
+  [56, 1],
+  [56, 39],
+  [56, 75],
+  [57, 1],
+  [57, 11],
+  [57, 20],
+  [57, 26],
+  [58, 1],
+  [58, 7],
+  [58, 14],
+  [59, 1],
+  [59, 11],
+  [59, 18],
+  [60, 1],
+  [60, 7],
+  [61, 1],
+  [61, 10],
+  [62, 1],
+  [62, 9],
+  [63, 1],
+  [63, 9],
+  [64, 1],
+  [64, 11],
+  [65, 1],
+  [65, 8],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 15],
+  [68, 1],
+  [68, 34],
+  [69, 1],
+  [69, 38],
+  [70, 1],
+  [70, 36],
+  [71, 1],
+  [71, 21],
+  [72, 1],
+  [72, 20],
+  [73, 1],
+  [73, 20],
+  [74, 1],
+  [74, 32],
+  [75, 1],
+  [75, 31],
+  [76, 1],
+  [76, 23],
+  [77, 1],
+  [77, 41],
+  [78, 1],
+  [78, 31],
+  [79, 1],
+  [79, 27],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 1],
+  [84, 1],
+  [85, 1],
+  [86, 1],
+  [87, 1],
+  [88, 1],
+  [89, 1],
+  [90, 1],
+  [91, 1],
+  [92, 1],
+  [93, 1],
+  [94, 1],
+  [95, 1],
+  [96, 1],
+  [97, 1],
+  [98, 1],
+  [99, 1],
+  [100, 1],
+  [101, 1],
+  [102, 1],
+  [103, 1],
+  [104, 1],
+  [105, 1],
+  [106, 1],
+  [107, 1],
+  [108, 1],
+  [109, 1],
+  [110, 1],
+  [111, 1],
+  [112, 1],
+  [113, 1],
+  [114, 1]
+]
diff --git a/lib_cjs/json/qdata-surah.json b/lib_cjs/json/qdata-surah.json
new file mode 100644
index 0000000..d27a8f7
--- /dev/null
+++ b/lib_cjs/json/qdata-surah.json
@@ -0,0 +1,118 @@
+[
+  [],
+  [0, 7, 5, 1, "الفاتحة", true, 1],
+  [7, 286, 87, 40, "البقرة", false, 2],
+  [293, 200, 89, 20, "آل عمران", false, 50],
+  [493, 176, 92, 24, "النساء", false, 77],
+  [669, 120, 112, 16, "المائدة", false, 107],
+  [789, 165, 55, 20, "الأنعام", true, 128],
+  [954, 206, 39, 24, "الأعراف", true, 151],
+  [1160, 75, 88, 10, "الأنفال", false, 177],
+  [1235, 129, 113, 16, "التوبة", false, 187],
+  [1364, 109, 51, 11, "يونس", true, 208],
+  [1473, 123, 52, 10, "هود", true, 222],
+  [1596, 111, 53, 12, "يوسف", true, 236],
+  [1707, 43, 96, 6, "الرعد", false, 249],
+  [1750, 52, 72, 7, "ابراهيم", true, 256],
+  [1802, 99, 54, 6, "الحجر", true, 262],
+  [1901, 128, 70, 16, "النحل", true, 268],
+  [2029, 111, 50, 12, "الإسراء", true, 282],
+  [2140, 110, 69, 12, "الكهف", true, 294],
+  [2250, 98, 44, 6, "مريم", true, 305],
+  [2348, 135, 45, 8, "طه", true, 313],
+  [2483, 112, 73, 7, "الأنبياء", true, 322],
+  [2595, 78, 103, 10, "الحج", false, 332],
+  [2673, 118, 74, 6, "المؤمنون", true, 342],
+  [2791, 64, 102, 9, "النور", false, 350],
+  [2855, 77, 42, 6, "الفرقان", true, 360],
+  [2932, 227, 47, 11, "الشعراء", true, 367],
+  [3159, 93, 48, 7, "النمل", true, 377],
+  [3252, 88, 49, 8, "القصص", true, 386],
+  [3340, 69, 85, 7, "العنكبوت", true, 397],
+  [3409, 60, 84, 6, "الروم", true, 405],
+  [3469, 34, 57, 3, "لقمان", true, 411],
+  [3503, 30, 75, 3, "السجدة", true, 415],
+  [3533, 73, 90, 9, "الأحزاب", false, 418],
+  [3606, 54, 58, 6, "سبإ", true, 428],
+  [3660, 45, 43, 5, "فاطر", true, 435],
+  [3705, 83, 41, 5, "يس", true, 441],
+  [3788, 182, 56, 5, "الصافات", true, 446],
+  [3970, 88, 38, 5, "ص", true, 453],
+  [4058, 75, 59, 8, "الزمر", true, 459],
+  [4133, 85, 60, 9, "غافر", true, 468],
+  [4218, 54, 61, 6, "فصلت", true, 477],
+  [4272, 53, 62, 5, "الشورى", true, 483],
+  [4325, 89, 63, 7, "الزخرف", true, 490],
+  [4414, 59, 64, 3, "الدخان", true, 496],
+  [4473, 37, 65, 4, "الجاثية", true, 499],
+  [4510, 35, 66, 4, "الأحقاف", true, 503],
+  [4545, 38, 95, 4, "محمد", false, 507],
+  [4583, 29, 111, 4, "الفتح", false, 511],
+  [4612, 18, 106, 2, "الحجرات", false, 516],
+  [4630, 45, 34, 3, "ق", true, 518],
+  [4675, 60, 67, 3, "الذاريات", true, 521],
+  [4735, 49, 76, 2, "الطور", true, 524],
+  [4784, 62, 23, 3, "النجم", true, 526],
+  [4846, 55, 37, 3, "القمر", true, 529],
+  [4901, 78, 97, 3, "الرحمن", false, 532],
+  [4979, 96, 46, 3, "الواقعة", true, 535],
+  [5075, 29, 94, 4, "الحديد", false, 538],
+  [5104, 22, 105, 3, "المجادلة", false, 542],
+  [5126, 24, 101, 3, "الحشر", false, 546],
+  [5150, 13, 91, 2, "الممتحنة", false, 549],
+  [5163, 14, 109, 2, "الصف", false, 552],
+  [5177, 11, 110, 2, "الجمعة", false, 553],
+  [5188, 11, 104, 2, "المنافقون", false, 555],
+  [5199, 18, 108, 2, "التغابن", false, 556],
+  [5217, 12, 99, 2, "الطلاق", false, 558],
+  [5229, 12, 107, 2, "التحريم", false, 560],
+  [5241, 30, 77, 2, "الملك", true, 562],
+  [5271, 52, 2, 2, "القلم", true, 565],
+  [5323, 52, 78, 2, "الحاقة", true, 567],
+  [5375, 44, 79, 2, "المعارج", true, 569],
+  [5419, 28, 71, 2, "نوح", true, 571],
+  [5447, 28, 40, 2, "الجن", true, 572],
+  [5475, 20, 3, 2, "المزمل", true, 574],
+  [5495, 56, 4, 2, "المدثر", true, 576],
+  [5551, 40, 31, 2, "القيامة", true, 578],
+  [5591, 31, 98, 2, "الانسان", false, 579],
+  [5622, 50, 33, 2, "المرسلات", true, 581],
+  [5672, 40, 80, 2, "النبإ", true, 582],
+  [5712, 46, 81, 2, "النازعات", true, 584],
+  [5758, 42, 24, 1, "عبس", true, 585],
+  [5800, 29, 7, 1, "التكوير", true, 586],
+  [5829, 19, 82, 1, "الإنفطار", true, 587],
+  [5848, 36, 86, 1, "المطففين", true, 588],
+  [5884, 25, 83, 1, "الإنشقاق", true, 589],
+  [5909, 22, 27, 1, "البروج", true, 590],
+  [5931, 17, 36, 1, "الطارق", true, 591],
+  [5948, 19, 8, 1, "الأعلى", true, 592],
+  [5967, 26, 68, 1, "الغاشية", true, 592],
+  [5993, 30, 10, 1, "الفجر", true, 593],
+  [6023, 20, 35, 1, "البلد", true, 594],
+  [6043, 15, 26, 1, "الشمس", true, 595],
+  [6058, 21, 9, 1, "الليل", true, 596],
+  [6079, 11, 11, 1, "الضحى", true, 596],
+  [6090, 8, 12, 1, "الشرح", true, 596],
+  [6098, 8, 28, 1, "التين", true, 597],
+  [6106, 19, 1, 1, "العلق", true, 597],
+  [6125, 5, 25, 1, "القدر", true, 598],
+  [6130, 8, 100, 1, "البينة", false, 599],
+  [6138, 8, 93, 1, "الزلزلة", false, 599],
+  [6146, 11, 14, 1, "العاديات", true, 600],
+  [6157, 11, 30, 1, "القارعة", true, 600],
+  [6168, 8, 16, 1, "التكاثر", true, 600],
+  [6176, 3, 13, 1, "العصر", true, 601],
+  [6179, 9, 32, 1, "الهمزة", true, 601],
+  [6188, 5, 19, 1, "الفيل", true, 601],
+  [6193, 4, 29, 1, "قريش", true, 602],
+  [6197, 7, 17, 1, "الماعون", true, 602],
+  [6204, 3, 15, 1, "الكوثر", true, 602],
+  [6207, 6, 18, 1, "الكافرون", true, 603],
+  [6213, 3, 114, 1, "النصر", false, 603],
+  [6216, 5, 6, 1, "المسد", true, 603],
+  [6221, 4, 22, 1, "الإخلاص", true, 604],
+  [6225, 5, 20, 1, "الفلق", true, 604],
+  [6230, 6, 21, 1, "الناس", true, 604],
+  [6236, 0]
+]
diff --git a/lib_cjs/juzList.js b/lib_cjs/juzList.js
deleted file mode 100644
index 0df114e..0000000
--- a/lib_cjs/juzList.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.JuzList = void 0;
-//------------------ Juz Data ---------------------
-exports.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,
-];
-//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_cjs/juzList.js.map b/lib_cjs/juzList.js.map
deleted file mode 100644
index 1da2b0d..0000000
--- a/lib_cjs/juzList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../src/juzList.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AACtC,QAAA,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/hizbList.cjs b/lib_cjs/lists/hizbList.cjs
new file mode 100644
index 0000000..41c5926
--- /dev/null
+++ b/lib_cjs/lists/hizbList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.HizbQuarterList = void 0;
+const HizbQuarterList = exports.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];
\ No newline at end of file
diff --git a/lib_cjs/lists/hizbList.js b/lib_cjs/lists/hizbList.js
deleted file mode 100644
index d4c2caa..0000000
--- a/lib_cjs/lists/hizbList.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.HizbQuarterList = void 0;
-//------------------ Hizb Data ---------------------
-exports.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,
-];
-//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/hizbList.js.map b/lib_cjs/lists/hizbList.js.map
deleted file mode 100644
index ea22312..0000000
--- a/lib_cjs/lists/hizbList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../../src/lists/hizbList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACvC,QAAA,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/lists/juzList.cjs b/lib_cjs/lists/juzList.cjs
new file mode 100644
index 0000000..4943d0f
--- /dev/null
+++ b/lib_cjs/lists/juzList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.JuzList = void 0;
+const JuzList = exports.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];
\ No newline at end of file
diff --git a/lib_cjs/lists/juzList.js b/lib_cjs/lists/juzList.js
deleted file mode 100644
index 0df114e..0000000
--- a/lib_cjs/lists/juzList.js
+++ /dev/null
@@ -1,10 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.JuzList = void 0;
-//------------------ Juz Data ---------------------
-exports.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,
-];
-//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/juzList.js.map b/lib_cjs/lists/juzList.js.map
deleted file mode 100644
index c6a4e37..0000000
--- a/lib_cjs/lists/juzList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../../src/lists/juzList.ts"],"names":[],"mappings":";;;AAEA,mDAAmD;AACtC,QAAA,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/manzilList.cjs b/lib_cjs/lists/manzilList.cjs
new file mode 100644
index 0000000..8b606d5
--- /dev/null
+++ b/lib_cjs/lists/manzilList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.ManzilList = void 0;
+const ManzilList = exports.ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
\ No newline at end of file
diff --git a/lib_cjs/lists/manzilList.js b/lib_cjs/lists/manzilList.js
deleted file mode 100644
index cb05048..0000000
--- a/lib_cjs/lists/manzilList.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ManzilList = void 0;
-//------------------ Manzil Data ---------------------
-exports.ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/manzilList.js.map b/lib_cjs/lists/manzilList.js.map
deleted file mode 100644
index fda8254..0000000
--- a/lib_cjs/lists/manzilList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../../src/lists/manzilList.ts"],"names":[],"mappings":";;;AAEA,sDAAsD;AACzC,QAAA,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/pageList.cjs b/lib_cjs/lists/pageList.cjs
new file mode 100644
index 0000000..198942d
--- /dev/null
+++ b/lib_cjs/lists/pageList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.PageList = void 0;
+const PageList = exports.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];
\ No newline at end of file
diff --git a/lib_cjs/lists/pageList.js b/lib_cjs/lists/pageList.js
deleted file mode 100644
index d8fd74f..0000000
--- a/lib_cjs/lists/pageList.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.PageList = void 0;
-exports.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,
-];
-//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/pageList.js.map b/lib_cjs/lists/pageList.js.map
deleted file mode 100644
index 8a1926b..0000000
--- a/lib_cjs/lists/pageList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../../src/lists/pageList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/lists/rukuList.cjs b/lib_cjs/lists/rukuList.cjs
new file mode 100644
index 0000000..f3774a6
--- /dev/null
+++ b/lib_cjs/lists/rukuList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.RukuList = void 0;
+const RukuList = exports.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];
\ No newline at end of file
diff --git a/lib_cjs/lists/rukuList.js b/lib_cjs/lists/rukuList.js
deleted file mode 100644
index e6ff3e5..0000000
--- a/lib_cjs/lists/rukuList.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.RukuList = void 0;
-exports.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,
-];
-//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/rukuList.js.map b/lib_cjs/lists/rukuList.js.map
deleted file mode 100644
index 660bac5..0000000
--- a/lib_cjs/lists/rukuList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../../src/lists/rukuList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/lists/sajdaList.cjs b/lib_cjs/lists/sajdaList.cjs
new file mode 100644
index 0000000..da43440
--- /dev/null
+++ b/lib_cjs/lists/sajdaList.cjs
@@ -0,0 +1,9 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.SajdaList = void 0;
+const SajdaList = exports.SajdaList = [
+// [ayaId, type]
+[1160, "recommended"], [1722, "recommended"], [1951, "recommended"], [2138, "recommended"], [2308, "recommended"], [2613, "recommended"], [2672, "recommended"], [2915, "recommended"], [3185, "recommended"], [3518, "obligatory"], [3994, "recommended"], [4256, "obligatory"], [4846, "obligatory"], [5905, "recommended"], [6125, "obligatory"]];
\ No newline at end of file
diff --git a/lib_cjs/lists/sajdaList.js b/lib_cjs/lists/sajdaList.js
deleted file mode 100644
index 6059962..0000000
--- a/lib_cjs/lists/sajdaList.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SajdaList = void 0;
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-exports.SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/sajdaList.js.map b/lib_cjs/lists/sajdaList.js.map
deleted file mode 100644
index 93b0fe4..0000000
--- a/lib_cjs/lists/sajdaList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../../src/lists/sajdaList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACxC,QAAA,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/lists/surahList.cjs b/lib_cjs/lists/surahList.cjs
new file mode 100644
index 0000000..0387e8e
--- /dev/null
+++ b/lib_cjs/lists/surahList.cjs
@@ -0,0 +1,7 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.SuraList = void 0;
+const SuraList = exports.SuraList = [[-1, -1, -1, -1, "", false, -1], [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1], [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2], [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50], [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77], [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107], [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128], [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151], [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177], [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187], [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208], [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222], [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236], [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249], [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256], [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262], [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268], [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282], [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294], [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305], [2348, 135, 45, 8, "\u0637\u0647", true, 313], [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322], [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332], [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342], [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350], [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360], [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367], [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377], [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386], [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397], [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405], [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411], [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415], [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418], [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428], [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435], [3705, 83, 41, 5, "\u064A\u0633", true, 441], [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446], [3970, 88, 38, 5, "\u0635", true, 453], [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459], [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468], [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477], [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483], [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490], [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496], [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499], [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503], [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507], [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511], [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516], [4630, 45, 34, 3, "\u0642", true, 518], [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521], [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524], [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526], [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529], [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532], [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535], [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538], [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542], [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546], [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549], [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552], [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553], [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555], [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556], [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558], [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560], [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562], [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565], [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567], [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569], [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571], [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572], [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574], [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576], [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578], [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579], [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581], [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582], [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584], [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585], [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586], [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587], [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588], [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589], [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590], [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591], [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592], [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592], [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593], [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594], [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595], [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596], [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596], [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596], [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597], [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597], [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598], [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599], [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599], [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600], [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600], [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600], [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601], [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601], [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601], [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602], [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602], [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602], [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603], [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603], [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603], [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604], [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604], [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604], [6236, 0, -1, -1, "", false, -1]];
\ No newline at end of file
diff --git a/lib_cjs/lists/surahList.js b/lib_cjs/lists/surahList.js
deleted file mode 100644
index 4c0cef3..0000000
--- a/lib_cjs/lists/surahList.js
+++ /dev/null
@@ -1,122 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SuraList = void 0;
-exports.SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_cjs/lists/surahList.js.map b/lib_cjs/lists/surahList.js.map
deleted file mode 100644
index 8420360..0000000
--- a/lib_cjs/lists/surahList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../../src/lists/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/manzilList.js b/lib_cjs/manzilList.js
deleted file mode 100644
index cb05048..0000000
--- a/lib_cjs/manzilList.js
+++ /dev/null
@@ -1,6 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.ManzilList = void 0;
-//------------------ Manzil Data ---------------------
-exports.ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_cjs/manzilList.js.map b/lib_cjs/manzilList.js.map
deleted file mode 100644
index 816344a..0000000
--- a/lib_cjs/manzilList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../src/manzilList.ts"],"names":[],"mappings":";;;AAEA,sDAAsD;AACzC,QAAA,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/nextAyah.cjs b/lib_cjs/nextAyah.cjs
new file mode 100644
index 0000000..7c74763
--- /dev/null
+++ b/lib_cjs/nextAyah.cjs
@@ -0,0 +1,14 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.nextAyah = nextAyah;
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > _const.meta.numSuras) throw new RangeError("Surah must be between 1 and " + _const.meta.numSuras);
+  const ayaid = (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findSurahByAyaid.findSurahByAyaid)(ayaid == _const.meta.numAyas ? 1 : ayaid + 1);
+}
\ No newline at end of file
diff --git a/lib_cjs/nextAyah.js b/lib_cjs/nextAyah.js
deleted file mode 100644
index 922596a..0000000
--- a/lib_cjs/nextAyah.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.nextAyah = nextAyah;
-var const_1 = require("./const");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var findSurahByAyaid_1 = require("./findSurahByAyaid");
-/**
- * Get the next ayah for the given surah and ayah number.
- * @param surah - The surah number.
- * @param ayah - The ayah number within the surah.
- * @returns The surah and ayah number of the next ayah.
- */
-function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > const_1.meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + const_1.meta.numSuras);
-    var ayaid = (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah);
-    return (0, findSurahByAyaid_1.findSurahByAyaid)(ayaid == const_1.meta.numAyas ? 1 : ayaid + 1);
-}
-//# sourceMappingURL=nextAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/nextAyah.js.map b/lib_cjs/nextAyah.js.map
deleted file mode 100644
index 36ac534..0000000
--- a/lib_cjs/nextAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"nextAyah.js","sourceRoot":"","sources":["../src/nextAyah.ts"],"names":[],"mappings":";;AAWA,4BAMC;AAjBD,iCAA+B;AAC/B,uDAAsD;AACtD,uDAAsD;AAGtD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,YAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,YAAI,CAAC,QAAQ,CAAC,CAAC;IAEvE,IAAM,KAAK,GAAW,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,IAAA,mCAAgB,EAAC,KAAK,IAAI,YAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/pageList.js b/lib_cjs/pageList.js
deleted file mode 100644
index d8fd74f..0000000
--- a/lib_cjs/pageList.js
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.PageList = void 0;
-exports.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,
-];
-//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_cjs/pageList.js.map b/lib_cjs/pageList.js.map
deleted file mode 100644
index d0bc47f..0000000
--- a/lib_cjs/pageList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../src/pageList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/pageMeta.cjs b/lib_cjs/pageMeta.cjs
new file mode 100644
index 0000000..32db8fb
--- /dev/null
+++ b/lib_cjs/pageMeta.cjs
@@ -0,0 +1,18 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.pageMeta = pageMeta;
+var _const = require("./const.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _pageList = require("./lists/pageList.cjs");
+function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > _const.meta.numPages) throw new RangeError("pagenum must be between 1 and " + _const.meta.numPages);
+  const [curPage, nextPage] = [_pageList.PageList[pageNum], _pageList.PageList[pageNum + 1]];
+  return {
+    pageNum,
+    first: (0, _findSurahByAyaid.findSurahByAyaid)(curPage),
+    last: [...(0, _findSurahByAyaid.findSurahByAyaid)(nextPage - 1)]
+  };
+}
\ No newline at end of file
diff --git a/lib_cjs/pageMeta.js b/lib_cjs/pageMeta.js
deleted file mode 100644
index 3452bd2..0000000
--- a/lib_cjs/pageMeta.js
+++ /dev/null
@@ -1,37 +0,0 @@
-"use strict";
-var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || Array.prototype.slice.call(from));
-};
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.pageMeta = pageMeta;
-var const_1 = require("./const");
-var findSurahByAyaid_1 = require("./findSurahByAyaid");
-var pageList_1 = require("./lists/pageList");
-/**
- * Retrieves the page metadata for the specified page number.
- *
- * @param pageNum - The page number to retrieve metadata for.
- * @returns The page metadata, including the first and last ayah IDs on the page.
- * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
- */
-function pageMeta(pageNum) {
-    // todo rename to getPageMeta in next major version
-    if (pageNum < 1 || pageNum > const_1.meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + const_1.meta.numPages);
-    var _a = [
-        pageList_1.PageList[pageNum],
-        pageList_1.PageList[pageNum + 1],
-    ], curPage = _a[0], nextPage = _a[1];
-    return {
-        pageNum: pageNum,
-        first: (0, findSurahByAyaid_1.findSurahByAyaid)(curPage),
-        last: __spreadArray([], (0, findSurahByAyaid_1.findSurahByAyaid)(nextPage - 1), true),
-    };
-}
-//# sourceMappingURL=pageMeta.js.map
\ No newline at end of file
diff --git a/lib_cjs/pageMeta.js.map b/lib_cjs/pageMeta.js.map
deleted file mode 100644
index 1f6fb94..0000000
--- a/lib_cjs/pageMeta.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageMeta.js","sourceRoot":"","sources":["../src/pageMeta.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,4BAeC;AA5BD,iCAA+B;AAC/B,uDAAsD;AACtD,6CAA4C;AAI5C;;;;;;GAMG;AACH,SAAgB,QAAQ,CAAC,OAAa;IACpC,mDAAmD;IACnD,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,YAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,YAAI,CAAC,QAAQ,CAAC,CAAC;IAEnE,IAAA,KAAwC;QAC5C,mBAAQ,CAAC,OAAO,CAAC;QACjB,mBAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;KACtB,EAHM,OAAO,QAAA,EAAE,QAAQ,QAGvB,CAAC;IAEF,OAAO;QACL,OAAO,SAAA;QACP,KAAK,EAAE,IAAA,mCAAgB,EAAC,OAAO,CAAC;QAChC,IAAI,oBAAM,IAAA,mCAAgB,EAAC,QAAQ,GAAG,CAAC,CAAC,OAAC;KAC1C,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/prevAyah.cjs b/lib_cjs/prevAyah.cjs
new file mode 100644
index 0000000..55c9da9
--- /dev/null
+++ b/lib_cjs/prevAyah.cjs
@@ -0,0 +1,15 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.prevAyah = prevAyah;
+var _const = require("./const.cjs");
+var _findAyaidBySurah = require("./findAyaidBySurah.cjs");
+var _findSurahByAyaid = require("./findSurahByAyaid.cjs");
+var _validation = require("./validation.cjs");
+function prevAyah(surah, ayah) {
+  (0, _validation.checkValidSurah)(surah);
+  const ayaid = (0, _findAyaidBySurah.findAyaidBySurah)(surah, ayah);
+  return (0, _findSurahByAyaid.findSurahByAyaid)(ayaid == 1 ? _const.meta.numAyas : ayaid - 1);
+}
\ No newline at end of file
diff --git a/lib_cjs/prevAyah.js b/lib_cjs/prevAyah.js
deleted file mode 100644
index 1f8e20f..0000000
--- a/lib_cjs/prevAyah.js
+++ /dev/null
@@ -1,19 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.prevAyah = prevAyah;
-var checkValidSurah_1 = require("./checkValidSurah");
-var const_1 = require("./const");
-var findAyaidBySurah_1 = require("./findAyaidBySurah");
-var findSurahByAyaid_1 = require("./findSurahByAyaid");
-/**
- * Get the previous ayah for the given surah and ayah number.
- * @param surah - The surah number.
- * @param ayah - The ayah number within the surah.
- * @returns The surah and ayah number of the previous ayah.
- */
-function prevAyah(surah, ayah) {
-    (0, checkValidSurah_1.checkValidSurah)(surah);
-    var ayaid = (0, findAyaidBySurah_1.findAyaidBySurah)(surah, ayah);
-    return (0, findSurahByAyaid_1.findSurahByAyaid)(ayaid == 1 ? const_1.meta.numAyas : ayaid - 1);
-}
-//# sourceMappingURL=prevAyah.js.map
\ No newline at end of file
diff --git a/lib_cjs/prevAyah.js.map b/lib_cjs/prevAyah.js.map
deleted file mode 100644
index b8b85c4..0000000
--- a/lib_cjs/prevAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"prevAyah.js","sourceRoot":"","sources":["../src/prevAyah.ts"],"names":[],"mappings":";;AAYA,4BAKC;AAjBD,qDAAoD;AACpD,iCAA+B;AAC/B,uDAAsD;AACtD,uDAAsD;AAGtD;;;;;GAKG;AACH,SAAgB,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,IAAA,iCAAe,EAAC,KAAK,CAAC,CAAC;IAEvB,IAAM,KAAK,GAAW,IAAA,mCAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,IAAA,mCAAgB,EAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,YAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/rukuList.js b/lib_cjs/rukuList.js
deleted file mode 100644
index e6ff3e5..0000000
--- a/lib_cjs/rukuList.js
+++ /dev/null
@@ -1,48 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.RukuList = void 0;
-exports.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,
-];
-//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_cjs/rukuList.js.map b/lib_cjs/rukuList.js.map
deleted file mode 100644
index c1d60fe..0000000
--- a/lib_cjs/rukuList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../src/rukuList.ts"],"names":[],"mappings":";;;AAEa,QAAA,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_cjs/sajdaList.js b/lib_cjs/sajdaList.js
deleted file mode 100644
index 6059962..0000000
--- a/lib_cjs/sajdaList.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SajdaList = void 0;
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-exports.SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_cjs/sajdaList.js.map b/lib_cjs/sajdaList.js.map
deleted file mode 100644
index 728bdae..0000000
--- a/lib_cjs/sajdaList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../src/sajdaList.ts"],"names":[],"mappings":";;;AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACxC,QAAA,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/surahList.js b/lib_cjs/surahList.js
deleted file mode 100644
index 4c0cef3..0000000
--- a/lib_cjs/surahList.js
+++ /dev/null
@@ -1,122 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.SuraList = void 0;
-exports.SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_cjs/surahList.js.map b/lib_cjs/surahList.js.map
deleted file mode 100644
index 58d2b75..0000000
--- a/lib_cjs/surahList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../src/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_cjs/types.cjs b/lib_cjs/types.cjs
new file mode 100644
index 0000000..9a390c3
--- /dev/null
+++ b/lib_cjs/types.cjs
@@ -0,0 +1 @@
+"use strict";
\ No newline at end of file
diff --git a/lib_cjs/types.js b/lib_cjs/types.js
deleted file mode 100644
index 11e638d..0000000
--- a/lib_cjs/types.js
+++ /dev/null
@@ -1,3 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/lib_cjs/types.js.map b/lib_cjs/types.js.map
deleted file mode 100644
index c768b79..0000000
--- a/lib_cjs/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/lib_cjs/utils.cjs b/lib_cjs/utils.cjs
new file mode 100644
index 0000000..f71baca
--- /dev/null
+++ b/lib_cjs/utils.cjs
@@ -0,0 +1,22 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.binarySearch = binarySearch;
+function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
\ No newline at end of file
diff --git a/lib_cjs/utils.js b/lib_cjs/utils.js
deleted file mode 100644
index 7f3896a..0000000
--- a/lib_cjs/utils.js
+++ /dev/null
@@ -1,31 +0,0 @@
-"use strict";
-Object.defineProperty(exports, "__esModule", { value: true });
-exports.binarySearch = binarySearch;
-/**
- * Performs a binary search on the given array to find the index of the specified element.
- *
- * @param ar - The array to search.
- * @param el - The element to search for.
- * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
- * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
- */
-function binarySearch(ar, el, compare_fn) {
-    if (compare_fn === void 0) { compare_fn = function (a, b) { return a - b; }; }
-    var m = 0;
-    var n = ar.length - 1;
-    while (m <= n) {
-        var k = (n + m) >> 1;
-        var cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-//# sourceMappingURL=utils.js.map
\ No newline at end of file
diff --git a/lib_cjs/utils.js.map b/lib_cjs/utils.js.map
deleted file mode 100644
index 1915ab9..0000000
--- a/lib_cjs/utils.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAQA,oCAmBG;AA3BH;;;;;;;GAOG;AACH,SAAgB,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,UAA8D;IAA9D,2BAAA,EAAA,uBAAgD,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,CAAC,EAAL,CAAK;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,IAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACtB,IAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,CAAC"}
\ No newline at end of file
diff --git a/lib_cjs/validation.cjs b/lib_cjs/validation.cjs
new file mode 100644
index 0000000..d342f2b
--- /dev/null
+++ b/lib_cjs/validation.cjs
@@ -0,0 +1,40 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+  value: true
+});
+exports.checkValidAyahId = checkValidAyahId;
+exports.checkValidSurah = checkValidSurah;
+exports.checkValidSurahAyah = checkValidSurahAyah;
+var _const = require("./const.cjs");
+var _getAyaCountinSura = require("./getAyaCountinSura.cjs");
+function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > _const.meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + _const.meta.numSuras);
+  }
+  return true;
+}
+function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > (0, _getAyaCountinSura.getAyaCountinSura)(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + (0, _getAyaCountinSura.getAyaCountinSura)(surah));
+  }
+  return true;
+}
+function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > _const.meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + _const.meta.numAyas);
+  }
+  return true;
+}
\ No newline at end of file
diff --git a/types/ayaStringSplitter.d.ts b/lib_es/ayaStringSplitter.d.ts
similarity index 100%
rename from types/ayaStringSplitter.d.ts
rename to lib_es/ayaStringSplitter.d.ts
diff --git a/lib_es/ayaStringSplitter.js b/lib_es/ayaStringSplitter.js
deleted file mode 100644
index 801d4b1..0000000
--- a/lib_es/ayaStringSplitter.js
+++ /dev/null
@@ -1,37 +0,0 @@
-import { checkValidSurahAyah } from "./checkValidSurahAyah";
-/**
- *  Turns String of type "x:y" or "x:y1-y2" to array [x,y] or [x,[y1,y2]] respectively
- * @param {*} str String of type "x:y" or "x:y1-y2"
- * @returns {array} array [x,y] or [x,[y1,y2]] respectively
- */
-export function ayaStringSplitter(str) {
-    const [surahStr, ayahsStr] = str.trim().split(":");
-    const surah = parseInt(surahStr, 10);
-    if (isNaN(surah)) {
-        throw "Error in surah format " + str;
-    }
-    if (!ayahsStr) {
-        throw "Error in data " + str;
-    }
-    let ayahs;
-    if (ayahsStr.includes("-")) {
-        ayahs = ayahsStr.split("-").map(a => {
-            const ayah = parseInt(a, 10);
-            if (isNaN(ayah) || ayah === 0) {
-                throw "Error in ayah " + a;
-            }
-            return ayah;
-        });
-        if (ayahs[0] > ayahs[1])
-            throw "Error in ayah range " + str;
-    }
-    else {
-        ayahs = parseInt(ayahsStr, 10);
-        if (isNaN(ayahs) || ayahs === 0) {
-            throw "Error in data " + str;
-        }
-        checkValidSurahAyah(surah, ayahs);
-    }
-    return [surah, ayahs];
-}
-//# sourceMappingURL=ayaStringSplitter.js.map
\ No newline at end of file
diff --git a/lib_es/ayaStringSplitter.js.map b/lib_es/ayaStringSplitter.js.map
deleted file mode 100644
index 14ef5fb..0000000
--- a/lib_es/ayaStringSplitter.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"ayaStringSplitter.js","sourceRoot":"","sources":["../src/ayaStringSplitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAG3D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;IAEpC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,wBAAwB,GAAG,GAAG,CAAA;IACtC,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,gBAAgB,GAAG,GAAG,CAAA;IAC9B,CAAC;IAED,IAAI,KAAgC,CAAA;IACpC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YAC5B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,gBAAgB,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAqB,CAAA;QACtB,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAAE,MAAM,sBAAsB,GAAG,GAAG,CAAA;IAC7D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;QAC9B,IAAI,KAAK,CAAC,KAAK,CAAC,IAAG,KAAK,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,gBAAgB,GAAG,GAAG,CAAA;QAC9B,CAAC;QACD,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACnC,CAAC;IAGD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/ayaStringSplitter.mjs b/lib_es/ayaStringSplitter.mjs
new file mode 100644
index 0000000..cb23f53
--- /dev/null
+++ b/lib_es/ayaStringSplitter.mjs
@@ -0,0 +1,29 @@
+import { checkValidSurahAyah } from "./validation.mjs";
+export function ayaStringSplitter(str) {
+  const [surahStr, ayahsStr] = str.trim().split(":");
+  const surah = parseInt(surahStr, 10);
+  if (isNaN(surah)) {
+    throw "Error in surah format " + str;
+  }
+  if (!ayahsStr) {
+    throw "Error in data " + str;
+  }
+  let ayahs;
+  if (ayahsStr.includes("-")) {
+    ayahs = ayahsStr.split("-").map((a) => {
+      const ayah = parseInt(a, 10);
+      if (isNaN(ayah) || ayah === 0) {
+        throw "Error in ayah " + a;
+      }
+      return ayah;
+    });
+    if (ayahs[0] > ayahs[1]) throw "Error in ayah range " + str;
+  } else {
+    ayahs = parseInt(ayahsStr, 10);
+    if (isNaN(ayahs) || ayahs === 0) {
+      throw "Error in data " + str;
+    }
+    checkValidSurahAyah(surah, ayahs);
+  }
+  return [surah, ayahs];
+}
diff --git a/lib_es/checkValidAyahId.js b/lib_es/checkValidAyahId.js
deleted file mode 100644
index 2b2e04c..0000000
--- a/lib_es/checkValidAyahId.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { meta } from "./const";
-/**
- * Checks if the given Ayah (verse) ID is valid.
- *
- * @param ayaId - The Ayah (verse) ID to check.
- * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
- */
-export function checkValidAyahId(ayaId) {
-    if (ayaId < 1 || ayaId > meta.numAyas)
-        throw new RangeError("ayaid must be between 1 and " + meta.numAyas);
-    return true;
-}
-//# sourceMappingURL=checkValidAyahId.js.map
\ No newline at end of file
diff --git a/lib_es/checkValidAyahId.js.map b/lib_es/checkValidAyahId.js.map
deleted file mode 100644
index 29060ea..0000000
--- a/lib_es/checkValidAyahId.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"checkValidAyahId.js","sourceRoot":"","sources":["../src/checkValidAyahId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;QACnC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_es/checkValidSurah.js b/lib_es/checkValidSurah.js
deleted file mode 100644
index bd92710..0000000
--- a/lib_es/checkValidSurah.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import { meta } from "./const";
-/**
- * Checks if the given Surah (chapter) number is valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah number is valid, false otherwise.
- */
-export function checkValidSurah(surah, checkOnly = false) {
-    if (surah < 1 || surah > meta.numSuras) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    }
-    return true;
-}
-//# sourceMappingURL=checkValidSurah.js.map
\ No newline at end of file
diff --git a/lib_es/checkValidSurah.js.map b/lib_es/checkValidSurah.js.map
deleted file mode 100644
index ca02589..0000000
--- a/lib_es/checkValidSurah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"checkValidSurah.js","sourceRoot":"","sources":["../src/checkValidSurah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B;;;;;;GAMG;AAEH,MAAM,UAAU,eAAe,CAAC,KAAY,EAAE,SAAS,GAAG,KAAK;IAC7D,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/lib_es/checkValidSurahAyah.js b/lib_es/checkValidSurahAyah.js
deleted file mode 100644
index 3f8abae..0000000
--- a/lib_es/checkValidSurahAyah.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { getSurahMeta } from "./getSurahMeta";
-/**
- * Checks if the given Surah and Ayah (verse) numbers are valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param ayah - The Ayah (verse) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah and Ayah numbers are valid, false otherwise.
- */
-export function checkValidSurahAyah(surah, ayah, checkOnly = false) {
-    if (!checkValidSurah(surah, checkOnly))
-        return false;
-    const [startAyahId, ayahCount] = getSurahMeta(surah);
-    if (ayah < 1 || ayah > ayahCount) {
-        if (checkOnly)
-            return false;
-        throw new RangeError("Ayah must be between 1 and " + ayahCount);
-    }
-    return true;
-}
-//# sourceMappingURL=checkValidSurahAyah.js.map
\ No newline at end of file
diff --git a/lib_es/checkValidSurahAyah.js.map b/lib_es/checkValidSurahAyah.js.map
deleted file mode 100644
index 9819c1e..0000000
--- a/lib_es/checkValidSurahAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"checkValidSurahAyah.js","sourceRoot":"","sources":["../src/checkValidSurahAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAY,EAAE,IAAY,EAAE,SAAS,GAAG,KAAK;IAC/E,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC;QAAE,OAAO,KAAK,CAAC;IAErD,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,SAAS,EAAE,CAAC;QACjC,IAAI,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5B,MAAM,IAAI,UAAU,CAAC,6BAA6B,GAAG,SAAS,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
\ No newline at end of file
diff --git a/types/const.d.ts b/lib_es/const.d.ts
similarity index 84%
rename from types/const.d.ts
rename to lib_es/const.d.ts
index 4329220..6ff1b0d 100644
--- a/types/const.d.ts
+++ b/lib_es/const.d.ts
@@ -1,4 +1,4 @@
-type QuranMeta = {
+export type QuranMeta = {
     numAyas: number;
     numSuras: number;
     numPages: number;
@@ -6,4 +6,3 @@ type QuranMeta = {
     manzilCount: number;
 };
 export declare const meta: Readonly<QuranMeta>;
-export {};
diff --git a/lib_es/const.js b/lib_es/const.js
deleted file mode 100644
index 6df8027..0000000
--- a/lib_es/const.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export const meta = Object.freeze({
-    numAyas: 6236,
-    numSuras: 114,
-    numPages: 604,
-    numJuzs: 30,
-    manzilCount: 7,
-});
-//# sourceMappingURL=const.js.map
\ No newline at end of file
diff --git a/lib_es/const.js.map b/lib_es/const.js.map
deleted file mode 100644
index 8b1765d..0000000
--- a/lib_es/const.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,IAAI,GAAwB,MAAM,CAAC,MAAM,CAAC;IACrD,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,CAAC;CACf,CAAC,CAAA"}
\ No newline at end of file
diff --git a/lib_es/const.mjs b/lib_es/const.mjs
new file mode 100644
index 0000000..f14c611
--- /dev/null
+++ b/lib_es/const.mjs
@@ -0,0 +1,7 @@
+export const meta = Object.freeze({
+  numAyas: 6236,
+  numSuras: 114,
+  numPages: 604,
+  numJuzs: 30,
+  manzilCount: 7
+});
diff --git a/types/findAyaidBySurah.d.ts b/lib_es/findAyaidBySurah.d.ts
similarity index 100%
rename from types/findAyaidBySurah.d.ts
rename to lib_es/findAyaidBySurah.d.ts
diff --git a/lib_es/findAyaidBySurah.js b/lib_es/findAyaidBySurah.js
deleted file mode 100644
index 90ee040..0000000
--- a/lib_es/findAyaidBySurah.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { checkValidSurahAyah } from "./checkValidSurahAyah";
-import { getSurahMeta } from "./getSurahMeta";
-/**
- * Get the ayah ID for the given surah and ayah number.
- * @param surah - The surah number.
- * @param ayah - The ayah number within the surah.
- * @returns The ayah ID for the given surah and ayah number.
- */
-export function findAyaidBySurah(surah, ayah) {
-    checkValidSurahAyah(surah, ayah);
-    const [startAyahId] = getSurahMeta(surah);
-    return startAyahId + ayah;
-}
-//# sourceMappingURL=findAyaidBySurah.js.map
\ No newline at end of file
diff --git a/lib_es/findAyaidBySurah.js.map b/lib_es/findAyaidBySurah.js.map
deleted file mode 100644
index 3b4ee18..0000000
--- a/lib_es/findAyaidBySurah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findAyaidBySurah.js","sourceRoot":"","sources":["../src/findAyaidBySurah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,IAAY;IACzD,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACjC,MAAM,CAAC,WAAW,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAC1C,OAAO,WAAW,GAAG,IAAI,CAAC;AAC5B,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findAyaidBySurah.mjs b/lib_es/findAyaidBySurah.mjs
new file mode 100644
index 0000000..687e99b
--- /dev/null
+++ b/lib_es/findAyaidBySurah.mjs
@@ -0,0 +1,7 @@
+import { getSurahMeta } from "./getSurahMeta.mjs";
+import { checkValidSurahAyah } from "./validation.mjs";
+export function findAyaidBySurah(surah, ayah) {
+  checkValidSurahAyah(surah, ayah);
+  const [startAyahId] = getSurahMeta(surah);
+  return startAyahId + ayah;
+}
diff --git a/types/findJuz.d.ts b/lib_es/findJuz.d.ts
similarity index 100%
rename from types/findJuz.d.ts
rename to lib_es/findJuz.d.ts
diff --git a/lib_es/findJuz.js b/lib_es/findJuz.js
deleted file mode 100644
index 1bdd9a5..0000000
--- a/lib_es/findJuz.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import { checkValidSurahAyah } from "./checkValidSurahAyah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-/**
- * Finds the Juz (part) of the Quran that the given Ayah (verse) belongs to.
- *
- * @param surah - The Surah (chapter) number.
- * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
- * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
- * @returns The Juz (part) number that the given Ayah belongs to.
- */
-export function findJuz(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah));
-    return findJuzByAyaid(ayahId);
-}
-//# sourceMappingURL=findJuz.js.map
\ No newline at end of file
diff --git a/lib_es/findJuz.js.map b/lib_es/findJuz.js.map
deleted file mode 100644
index be95c72..0000000
--- a/lib_es/findJuz.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuz.js","sourceRoot":"","sources":["../src/findJuz.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,KAAY,EAAE,OAAe,CAAC,EAAE,QAAQ,GAAG,KAAK;IACtE,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAEpF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuz.mjs b/lib_es/findJuz.mjs
new file mode 100644
index 0000000..e947518
--- /dev/null
+++ b/lib_es/findJuz.mjs
@@ -0,0 +1,7 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { checkValidSurahAyah } from "./validation.mjs";
+export function findJuz(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurahAyah(surah, ayah) && findAyaidBySurah(surah, ayah);
+  return findJuzByAyaid(ayahId);
+}
diff --git a/types/findJuzAndShift.d.ts b/lib_es/findJuzAndShift.d.ts
similarity index 100%
rename from types/findJuzAndShift.d.ts
rename to lib_es/findJuzAndShift.d.ts
diff --git a/lib_es/findJuzAndShift.js b/lib_es/findJuzAndShift.js
deleted file mode 100644
index 2793b22..0000000
--- a/lib_es/findJuzAndShift.js
+++ /dev/null
@@ -1,34 +0,0 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { JuzList } from "./lists/juzList";
-import { SuraList } from "./lists/surahList";
-/**
- * Finds the juz (section) that contains the specified ayah (verse) and calculates the number of ayahs between the start of the juz and the start of the surah (chapter) that contains the ayah.
- *
- * @param surah - The surah (chapter) that contains the ayah.
- * @param ayah - The ayah (verse) number.
- * @param ayahMode - A boolean flag indicating whether the `ayah` parameter represents an ayah number or an ayah ID.
- * @returns An object containing the following properties:
- *   - `juz`: The juz (section) that contains the ayah.
- *   - `leftAyahId`: The ayah ID of the first ayah in the juz.
- *   - `ayahsBetweenJuzSurah`: The number of ayahs between the start of the juz and the start of the surah (positive if the surah starts is in the juz, negative if the surah starts before the juz).
- */
-export function findJuzAndShift(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    const juz = findJuzByAyaid(ayahId);
-    const leftAyahId = JuzList[juz];
-    if (ayahMode)
-        [surah] = findSurahByAyaid(ayahId);
-    const [surahStartAyahId] = SuraList[surah];
-    return {
-        juz,
-        ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
-        leftAyahId
-    };
-}
-//# sourceMappingURL=findJuzAndShift.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzAndShift.js.map b/lib_es/findJuzAndShift.js.map
deleted file mode 100644
index 63fcf4a..0000000
--- a/lib_es/findJuzAndShift.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzAndShift.js","sourceRoot":"","sources":["../src/findJuzAndShift.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAMhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,MAAM,GAAG,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,QAAQ;QAAE,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO;QACL,GAAG;QACH,oBAAoB,EAAE,gBAAgB,GAAG,UAAU,GAAG,CAAC;QACvD,UAAU;KACX,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzAndShift.mjs b/lib_es/findJuzAndShift.mjs
new file mode 100644
index 0000000..bfc0633
--- /dev/null
+++ b/lib_es/findJuzAndShift.mjs
@@ -0,0 +1,18 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function findJuzAndShift(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  const juz = findJuzByAyaid(ayahId);
+  const leftAyahId = JuzList[juz];
+  if (ayahMode) [surah] = findSurahByAyaid(ayahId);
+  const [surahStartAyahId] = SuraList[surah];
+  return {
+    juz,
+    ayahsBetweenJuzSurah: surahStartAyahId - leftAyahId + 1,
+    leftAyahId
+  };
+}
diff --git a/types/findJuzByAyaid.d.ts b/lib_es/findJuzByAyaid.d.ts
similarity index 100%
rename from types/findJuzByAyaid.d.ts
rename to lib_es/findJuzByAyaid.d.ts
diff --git a/lib_es/findJuzByAyaid.js b/lib_es/findJuzByAyaid.js
deleted file mode 100644
index eae0e3a..0000000
--- a/lib_es/findJuzByAyaid.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { JuzList } from "./lists/juzList";
-/**
- * Finds the Juz (part) of the Quran that contains the given Ayah (verse) ID.
- *
- * @param ayaId - The ID of the Ayah (verse) to find the Juz for.
- * @returns The Juz (part) of the Quran that contains the given Ayah ID.
- */
-export function findJuzByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    return JuzList.findIndex(x => x > ayaId) - 1;
-}
-//# sourceMappingURL=findJuzByAyaid.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzByAyaid.js.map b/lib_es/findJuzByAyaid.js.map
deleted file mode 100644
index e7b8dd5..0000000
--- a/lib_es/findJuzByAyaid.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzByAyaid.js","sourceRoot":"","sources":["../src/findJuzByAyaid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI1C;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzByAyaid.mjs b/lib_es/findJuzByAyaid.mjs
new file mode 100644
index 0000000..17327d5
--- /dev/null
+++ b/lib_es/findJuzByAyaid.mjs
@@ -0,0 +1,6 @@
+import { JuzList } from "./lists/juzList.mjs";
+import { checkValidAyahId } from "./validation.mjs";
+export function findJuzByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  return JuzList.findIndex((x) => x > ayaId) - 1;
+}
diff --git a/types/findJuzHizb.d.ts b/lib_es/findJuzHizb.d.ts
similarity index 100%
rename from types/findJuzHizb.d.ts
rename to lib_es/findJuzHizb.d.ts
diff --git a/lib_es/findJuzHizb.js b/lib_es/findJuzHizb.js
deleted file mode 100644
index ea983d4..0000000
--- a/lib_es/findJuzHizb.js
+++ /dev/null
@@ -1,18 +0,0 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
-/**
- * Finds the Juz (part) and Hizb (section) of the Quran that the given Ayah (verse) belongs to.
- *
- * @param surah - The Surah (chapter) number.
- * @param ayah - The Ayah (verse) number. Defaults to 1 if not provided.
- * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
- * @returns An object containing the Juz (part) number, Hizb (section) number, and the index of the Hizb that the given Ayah belongs to.
- */
-export function findJuzHizb(surah, ayah = 1, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return findJuzHizbByAyaid(ayahId);
-}
-//# sourceMappingURL=findJuzHizb.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzHizb.js.map b/lib_es/findJuzHizb.js.map
deleted file mode 100644
index aceb7c3..0000000
--- a/lib_es/findJuzHizb.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzHizb.js","sourceRoot":"","sources":["../src/findJuzHizb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CACzB,KAAY,EACZ,OAAe,CAAC,EAChB,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzHizb.mjs b/lib_es/findJuzHizb.mjs
new file mode 100644
index 0000000..00620bc
--- /dev/null
+++ b/lib_es/findJuzHizb.mjs
@@ -0,0 +1,7 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzHizbByAyaid } from "./findJuzHizbByAyaid.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function findJuzHizb(surah, ayah = 1, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return findJuzHizbByAyaid(ayahId);
+}
diff --git a/types/findJuzHizbByAyaid.d.ts b/lib_es/findJuzHizbByAyaid.d.ts
similarity index 100%
rename from types/findJuzHizbByAyaid.d.ts
rename to lib_es/findJuzHizbByAyaid.d.ts
diff --git a/lib_es/findJuzHizbByAyaid.js b/lib_es/findJuzHizbByAyaid.js
deleted file mode 100644
index c8fa51d..0000000
--- a/lib_es/findJuzHizbByAyaid.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-import { HizbQuarterList } from "./lists/hizbList";
-/**
- * Finds the Juz, Hizb, and Hizb ID for the given Ayah ID.
- *
- * @param ayaId - The Ayah ID to find the Juz, Hizb, and Hizb ID for.
- * @returns An object containing the Juz, Hizb, and Hizb ID for the given Ayah ID.
- */
-export function findJuzHizbByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const juz = findJuzByAyaid(ayaId);
-    const id = HizbQuarterList.findIndex(x => x > ayaId) - 1;
-    return { juz, hizb: id % 8 || 8, id };
-}
-//# sourceMappingURL=findJuzHizbByAyaid.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzHizbByAyaid.js.map b/lib_es/findJuzHizbByAyaid.js.map
deleted file mode 100644
index 6ca401b..0000000
--- a/lib_es/findJuzHizbByAyaid.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzHizbByAyaid.js","sourceRoot":"","sources":["../src/findJuzHizbByAyaid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElC,MAAM,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;AACxC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzHizbByAyaid.mjs b/lib_es/findJuzHizbByAyaid.mjs
new file mode 100644
index 0000000..91c0ad4
--- /dev/null
+++ b/lib_es/findJuzHizbByAyaid.mjs
@@ -0,0 +1,10 @@
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { HizbQuarterList } from "./lists/hizbList.mjs";
+import { checkValidAyahId } from "./validation.mjs";
+export function findJuzHizbByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const juz = findJuzByAyaid(ayaId);
+  const quarterIndex = HizbQuarterList.findIndex((x) => x > ayaId) - 1;
+  const hizb = quarterIndex % 8 || 8;
+  return { juz, hizb, id: quarterIndex };
+}
diff --git a/lib_es/findJuzMetaBySurah.d.ts b/lib_es/findJuzMetaBySurah.d.ts
new file mode 100644
index 0000000..6c3d16e
--- /dev/null
+++ b/lib_es/findJuzMetaBySurah.d.ts
@@ -0,0 +1,9 @@
+import { AyahNo, JuzMeta, Surah } from "./types";
+/**
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
+ */
+export declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
diff --git a/lib_es/findJuzMetaBySurah.js b/lib_es/findJuzMetaBySurah.js
deleted file mode 100644
index 94a3ae6..0000000
--- a/lib_es/findJuzMetaBySurah.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { meta } from "./const";
-import { findJuzAndShift } from "./findJuzAndShift";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { JuzList } from "./lists/juzList";
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export function findJuzMetaBySurah(surah, ayah = 1) {
-    const { juz: leftjuz, ayahsBetweenJuzSurah, leftAyahId, } = findJuzAndShift(surah, ayah);
-    let rightJuz = leftjuz;
-    while (rightJuz < meta.numJuzs &&
-        findSurahByAyaid(JuzList[rightJuz + 1])[0] == surah)
-        rightJuz++;
-    return {
-        leftjuz,
-        ayahsBetweenJuzSurah,
-        rightJuz,
-        leftAyahId,
-        rightAyahId: JuzList[rightJuz + 1],
-    };
-}
-//# sourceMappingURL=findJuzMetaBySurah.js.map
\ No newline at end of file
diff --git a/lib_es/findJuzMetaBySurah.js.map b/lib_es/findJuzMetaBySurah.js.map
deleted file mode 100644
index eaa1bc1..0000000
--- a/lib_es/findJuzMetaBySurah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findJuzMetaBySurah.js","sourceRoot":"","sources":["../src/findJuzMetaBySurah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAY,EAAE,OAAe,CAAC;IAC/D,MAAM,EACJ,GAAG,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,GAC/C,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAEjC,IAAI,QAAQ,GAAQ,OAAO,CAAC;IAC5B,OAAO,QAAQ,GAAG,IAAI,CAAC,OAAO;QAC5B,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK;QACnD,QAAQ,EAAE,CAAC;IAEb,OAAO;QACL,OAAO;QACP,oBAAoB;QACpB,QAAQ;QACR,UAAU;QACV,WAAW,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;KACnC,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findJuzMetaBySurah.mjs b/lib_es/findJuzMetaBySurah.mjs
new file mode 100644
index 0000000..7fa3c46
--- /dev/null
+++ b/lib_es/findJuzMetaBySurah.mjs
@@ -0,0 +1,22 @@
+import { meta } from "./const.mjs";
+import { findJuzAndShift } from "./findJuzAndShift.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+export function findJuzMetaBySurah(surah, ayah = 1) {
+  const {
+    juz: leftjuz,
+    ayahsBetweenJuzSurah,
+    leftAyahId
+  } = findJuzAndShift(surah, ayah);
+  let rightJuz = leftjuz;
+  while (rightJuz < meta.numJuzs && findSurahByAyaid(JuzList[rightJuz + 1])[0] === surah) {
+    rightJuz++;
+  }
+  return {
+    leftjuz,
+    ayahsBetweenJuzSurah,
+    rightJuz,
+    leftAyahId,
+    rightAyahId: JuzList[rightJuz + 1]
+  };
+}
diff --git a/types/findPage.d.ts b/lib_es/findPage.d.ts
similarity index 100%
rename from types/findPage.d.ts
rename to lib_es/findPage.d.ts
diff --git a/lib_es/findPage.js b/lib_es/findPage.js
deleted file mode 100644
index 6c4c996..0000000
--- a/lib_es/findPage.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { PageList } from "./lists/pageList";
-/**
- * Finds the page number for the given Surah and Ayah number.
- *
- * @param surah - The Surah to find the page for.
- * @param ayah - The Ayah number to find the page for.
- * @param ayahMode - If true, the `ayah` parameter is treated as an AyahId instead of an AyahNo.
- * @returns The page number for the given Surah and Ayah.
- */
-export function findPage(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return PageList.findIndex(x => x > ayahId) - 1;
-}
-//# sourceMappingURL=findPage.js.map
\ No newline at end of file
diff --git a/lib_es/findPage.js.map b/lib_es/findPage.js.map
deleted file mode 100644
index cfe1bf7..0000000
--- a/lib_es/findPage.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findPage.js","sourceRoot":"","sources":["../src/findPage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY,EAAE,QAAQ,GAAG,KAAK;IACnE,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findPage.mjs b/lib_es/findPage.mjs
new file mode 100644
index 0000000..3d821a8
--- /dev/null
+++ b/lib_es/findPage.mjs
@@ -0,0 +1,7 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { PageList } from "./lists/pageList.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function findPage(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return PageList.findIndex((x) => x > ayahId) - 1;
+}
diff --git a/types/findRangeAroundAyah.d.ts b/lib_es/findRangeAroundAyah.d.ts
similarity index 100%
rename from types/findRangeAroundAyah.d.ts
rename to lib_es/findRangeAroundAyah.d.ts
diff --git a/lib_es/findRangeAroundAyah.js b/lib_es/findRangeAroundAyah.js
deleted file mode 100644
index 87d78b2..0000000
--- a/lib_es/findRangeAroundAyah.js
+++ /dev/null
@@ -1,63 +0,0 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { meta } from "./const";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findJuzByAyaid } from "./findJuzByAyaid";
-import { findPage } from "./findPage";
-import { JuzList } from "./lists/juzList";
-import { PageList } from "./lists/pageList";
-import { SuraList } from "./lists/surahList";
-/**
- * ALternative deprecated method
- * @param {*} pageNum
- */
-// export function pageMetaOld(pageNum: number): any {
-//   if (pageNum < 1 || pageNum > meta.numPages)
-//   throw new RangeError("pagenum must be between 1 and " + meta.numPages)
-//   const [curPage, nextPage] = [
-//     findSurahByAyaid(PageList[pageNum]),
-//     findSurahByAyaid(PageList[pageNum + 1]),
-//   ]
-//   const [firstSurah, firstAyah, lastSurah, lastAyah] = [
-//     curPage[0],
-//     curPage[1],
-//     nextPage[1] === 1 ? nextPage[0] - 1 : nextPage[0],
-//     nextPage[1] === 1 ? SuraList[nextPage[0] - 1][1] : nextPage[1] - 1,
-//   ]
-//   return {
-//     pageNum,
-//     first: [firstSurah, firstAyah],
-//     last: [lastSurah, lastAyah],
-//   }
-// }
-/**
- * Find range containing ayah according to the mode
- * @param surah
- * @param ayah
- * @param {*} mode can be either 'all', 'juz', 'surah', 'ayah', 'page'
- * default is all
- */
-export function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
-    const ayahId = ayahMode
-        ? ayah
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    switch (mode) {
-        case "juz": {
-            const juz = findJuzByAyaid(ayahId);
-            return [JuzList[juz], JuzList[juz + 1] - 1];
-        }
-        case "surah": {
-            return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
-        }
-        case "ayah": {
-            return [ayahId, ayahId];
-        }
-        case "page": {
-            const page = findPage(-1, ayahId, true);
-            return [PageList[page], PageList[page + 1] - 1];
-        }
-        case "all":
-        default:
-            return [1, meta.numAyas];
-    }
-}
-//# sourceMappingURL=findRangeAroundAyah.js.map
\ No newline at end of file
diff --git a/lib_es/findRangeAroundAyah.js.map b/lib_es/findRangeAroundAyah.js.map
deleted file mode 100644
index 86b244d..0000000
--- a/lib_es/findRangeAroundAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findRangeAroundAyah.js","sourceRoot":"","sources":["../src/findRangeAroundAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;;GAGG;AACH,sDAAsD;AACtD,gDAAgD;AAChD,2EAA2E;AAC3E,kCAAkC;AAClC,2CAA2C;AAC3C,+CAA+C;AAC/C,MAAM;AACN,2DAA2D;AAC3D,kBAAkB;AAClB,kBAAkB;AAClB,yDAAyD;AACzD,0EAA0E;AAC1E,MAAM;AACN,aAAa;AACb,eAAe;AACf,sCAAsC;AACtC,mCAAmC;AACnC,MAAM;AACN,IAAI;AAGJ;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAY,EACZ,IAAY,EACZ,IAA+C,EAC/C,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAC,IAAI;QACN,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,GAAG,GAAQ,cAAc,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QAED,KAAK,KAAK,CAAC;QACX;YACE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findRangeAroundAyah.mjs b/lib_es/findRangeAroundAyah.mjs
new file mode 100644
index 0000000..a0bbac5
--- /dev/null
+++ b/lib_es/findRangeAroundAyah.mjs
@@ -0,0 +1,30 @@
+import { meta } from "./const.mjs";
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+import { findPage } from "./findPage.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+import { PageList } from "./lists/pageList.mjs";
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function findRangeAroundAyah(surah, ayah, mode, ayahMode = false) {
+  const ayahId = ayahMode ? ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  switch (mode) {
+    case "juz": {
+      const juz = findJuzByAyaid(ayahId);
+      return [JuzList[juz], JuzList[juz + 1] - 1];
+    }
+    case "surah": {
+      return [SuraList[surah][0] + 1, SuraList[surah + 1][0]];
+    }
+    case "ayah": {
+      return [ayahId, ayahId];
+    }
+    case "page": {
+      const page = findPage(-1, ayahId, true);
+      return [PageList[page], PageList[page + 1] - 1];
+    }
+    case "all":
+    default:
+      return [1, meta.numAyas];
+  }
+}
diff --git a/types/findSurahByAyaid.d.ts b/lib_es/findSurahByAyaid.d.ts
similarity index 100%
rename from types/findSurahByAyaid.d.ts
rename to lib_es/findSurahByAyaid.d.ts
diff --git a/lib_es/findSurahByAyaid.js b/lib_es/findSurahByAyaid.js
deleted file mode 100644
index 495dbd5..0000000
--- a/lib_es/findSurahByAyaid.js
+++ /dev/null
@@ -1,14 +0,0 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { SuraList } from "./lists/surahList";
-/**
- * Finds the Surah (chapter) and Ayah (verse) numbers that the given Ayah ID belongs to.
- *
- * @param ayaId - The Ayah ID to find the Surah and Ayah numbers for.
- * @returns An array containing the Surah number and the Ayah number within that Surah.
- */
-export function findSurahByAyaid(ayaId) {
-    checkValidAyahId(ayaId);
-    const suraNum = SuraList.findIndex(x => x[0] >= ayaId) - 1;
-    return [suraNum, ayaId - SuraList[suraNum][0]];
-}
-//# sourceMappingURL=findSurahByAyaid.js.map
\ No newline at end of file
diff --git a/lib_es/findSurahByAyaid.js.map b/lib_es/findSurahByAyaid.js.map
deleted file mode 100644
index d1659c9..0000000
--- a/lib_es/findSurahByAyaid.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"findSurahByAyaid.js","sourceRoot":"","sources":["../src/findSurahByAyaid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAExB,MAAM,OAAO,GAAU,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,CAAC,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC"}
\ No newline at end of file
diff --git a/lib_es/findSurahByAyaid.mjs b/lib_es/findSurahByAyaid.mjs
new file mode 100644
index 0000000..e6fb538
--- /dev/null
+++ b/lib_es/findSurahByAyaid.mjs
@@ -0,0 +1,7 @@
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidAyahId } from "./validation.mjs";
+export function findSurahByAyaid(ayaId) {
+  checkValidAyahId(ayaId);
+  const suraNum = SuraList.findIndex((x) => x[0] >= ayaId) - 1;
+  return [suraNum, ayaId - SuraList[suraNum][0]];
+}
diff --git a/types/getAyaCountinSura.d.ts b/lib_es/getAyaCountinSura.d.ts
similarity index 100%
rename from types/getAyaCountinSura.d.ts
rename to lib_es/getAyaCountinSura.d.ts
diff --git a/lib_es/getAyaCountinSura.js b/lib_es/getAyaCountinSura.js
deleted file mode 100644
index 1408ef8..0000000
--- a/lib_es/getAyaCountinSura.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { getSurahMeta } from "./getSurahMeta";
-/**
- * Get the number of ayahs (verses) in the specified surah.
- * @param surah - The surah number.
- * @returns The number of ayahs in the specified surah.
- */
-export function getAyaCountinSura(surah) {
-    return getSurahMeta(surah)[1];
-}
-//# sourceMappingURL=getAyaCountinSura.js.map
\ No newline at end of file
diff --git a/lib_es/getAyaCountinSura.js.map b/lib_es/getAyaCountinSura.js.map
deleted file mode 100644
index a794306..0000000
--- a/lib_es/getAyaCountinSura.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getAyaCountinSura.js","sourceRoot":"","sources":["../src/getAyaCountinSura.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAY;IAC5C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/getAyaCountinSura.mjs b/lib_es/getAyaCountinSura.mjs
new file mode 100644
index 0000000..33db30a
--- /dev/null
+++ b/lib_es/getAyaCountinSura.mjs
@@ -0,0 +1,4 @@
+import { getSurahMeta } from "./getSurahMeta.mjs";
+export function getAyaCountinSura(surah) {
+  return getSurahMeta(surah)[1];
+}
diff --git a/types/getSurahMeta.d.ts b/lib_es/getSurahMeta.d.ts
similarity index 100%
rename from types/getSurahMeta.d.ts
rename to lib_es/getSurahMeta.d.ts
diff --git a/lib_es/getSurahMeta.js b/lib_es/getSurahMeta.js
deleted file mode 100644
index aa9435c..0000000
--- a/lib_es/getSurahMeta.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { SuraList } from "./lists/surahList";
-/**
- * Gets the metadata for the specified Surah.
- *
- * @param surah - The Surah to get the metadata for.
- * @returns The metadata for the specified Surah.
- */
-export function getSurahMeta(surah) {
-    checkValidSurah(surah);
-    return SuraList[surah];
-}
-//# sourceMappingURL=getSurahMeta.js.map
\ No newline at end of file
diff --git a/lib_es/getSurahMeta.js.map b/lib_es/getSurahMeta.js.map
deleted file mode 100644
index 4f7444c..0000000
--- a/lib_es/getSurahMeta.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"getSurahMeta.js","sourceRoot":"","sources":["../src/getSurahMeta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAI7C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,KAAY;IACvC,eAAe,CAAC,KAAK,CAAC,CAAC;IACvB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/getSurahMeta.mjs b/lib_es/getSurahMeta.mjs
new file mode 100644
index 0000000..7447bce
--- /dev/null
+++ b/lib_es/getSurahMeta.mjs
@@ -0,0 +1,6 @@
+import { SuraList } from "./lists/surahList.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function getSurahMeta(surah) {
+  checkValidSurah(surah);
+  return SuraList[surah];
+}
diff --git a/lib_es/hizbList.js b/lib_es/hizbList.js
deleted file mode 100644
index ca143f3..0000000
--- a/lib_es/hizbList.js
+++ /dev/null
@@ -1,22 +0,0 @@
-//------------------ Hizb Data ---------------------
-export const 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,
-];
-//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_es/hizbList.js.map b/lib_es/hizbList.js.map
deleted file mode 100644
index f7cfcca..0000000
--- a/lib_es/hizbList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../src/hizbList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/types/i18n/sura.en.d.ts b/lib_es/i18n/sura.en.d.ts
similarity index 100%
rename from types/i18n/sura.en.d.ts
rename to lib_es/i18n/sura.en.d.ts
diff --git a/lib_es/i18n/sura.en.js b/lib_es/i18n/sura.en.js
deleted file mode 100644
index 9daff5f..0000000
--- a/lib_es/i18n/sura.en.js
+++ /dev/null
@@ -1,118 +0,0 @@
-export const suraNames = [
-    [],
-    ["Al-Faatiha", "The Opening"],
-    ["Al-Baqara", "The Cow"],
-    ["Aal-i-Imraan", "The Family of Imraan"],
-    ["An-Nisaa", "The Women"],
-    ["Al-Maaida", "The Table"],
-    ["Al-An'aam", "The Cattle"],
-    ["Al-A'raaf", "The Heights"],
-    ["Al-Anfaal", "The Spoils of War"],
-    ["At-Tawba", "The Repentance"],
-    ["Yunus", "Jonas"],
-    ["Hud", "Hud"],
-    ["Yusuf", "Joseph"],
-    ["Ar-Ra'd", "The Thunder"],
-    ["Ibrahim", "Abraham"],
-    ["Al-Hijr", "The Rock"],
-    ["An-Nahl", "The Bee"],
-    ["Al-Israa", "The Night Journey"],
-    ["Al-Kahf", "The Cave"],
-    ["Maryam", "Mary"],
-    ["Taa-Haa", "Taa-Haa"],
-    ["Al-Anbiyaa", "The Prophets"],
-    ["Al-Hajj", "The Pilgrimage"],
-    ["Al-Muminoon", "The Believers"],
-    ["An-Noor", "The Light"],
-    ["Al-Furqaan", "The Criterion"],
-    ["Ash-Shu'araa", "The Poets"],
-    ["An-Naml", "The Ant"],
-    ["Al-Qasas", "The Stories"],
-    ["Al-Ankaboot", "The Spider"],
-    ["Ar-Room", "The Romans"],
-    ["Luqman", "Luqman"],
-    ["As-Sajda", "The Prostration"],
-    ["Al-Ahzaab", "The Clans"],
-    ["Saba", "Sheba"],
-    ["Faatir", "The Originator"],
-    ["Yaseen", "Yaseen"],
-    ["As-Saaffaat", "Those drawn up in Ranks"],
-    ["Saad", "The letter Saad"],
-    ["Az-Zumar", "The Groups"],
-    ["Al-Ghaafir", "The Forgiver"],
-    ["Fussilat", "Explained in detail"],
-    ["Ash-Shura", "Consultation"],
-    ["Az-Zukhruf", "Ornaments of gold"],
-    ["Ad-Dukhaan", "The Smoke"],
-    ["Al-Jaathiya", "Crouching"],
-    ["Al-Ahqaf", "The Dunes"],
-    ["Muhammad", "Muhammad"],
-    ["Al-Fath", "The Victory"],
-    ["Al-Hujuraat", "The Inner Apartments"],
-    ["Qaaf", "The letter Qaaf"],
-    ["Adh-Dhaariyat", "The Winnowing Winds"],
-    ["At-Tur", "The Mount"],
-    ["An-Najm", "The Star"],
-    ["Al-Qamar", "The Moon"],
-    ["Ar-Rahmaan", "The Beneficent"],
-    ["Al-Waaqia", "The Inevitable"],
-    ["Al-Hadid", "The Iron"],
-    ["Al-Mujaadila", "The Pleading Woman"],
-    ["Al-Hashr", "The Exile"],
-    ["Al-Mumtahana", "She that is to be examined"],
-    ["As-Saff", "The Ranks"],
-    ["Al-Jumu'a", "Friday"],
-    ["Al-Munaafiqoon", "The Hypocrites"],
-    ["At-Taghaabun", "Mutual Disillusion"],
-    ["At-Talaaq", "Divorce"],
-    ["At-Tahrim", "The Prohibition"],
-    ["Al-Mulk", "The Sovereignty"],
-    ["Al-Qalam", "The Pen"],
-    ["Al-Haaqqa", "The Reality"],
-    ["Al-Ma'aarij", "The Ascending Stairways"],
-    ["Nooh", "Noah"],
-    ["Al-Jinn", "The Jinn"],
-    ["Al-Muzzammil", "The Enshrouded One"],
-    ["Al-Muddaththir", "The Cloaked One"],
-    ["Al-Qiyaama", "The Resurrection"],
-    ["Al-Insaan", "Man"],
-    ["Al-Mursalaat", "The Emissaries"],
-    ["An-Naba", "The Announcement"],
-    ["An-Naazi'aat", "Those who drag forth"],
-    ["Abasa", "He frowned"],
-    ["At-Takwir", "The Overthrowing"],
-    ["Al-Infitaar", "The Cleaving"],
-    ["Al-Mutaffifin", "Defrauding"],
-    ["Al-Inshiqaaq", "The Splitting Open"],
-    ["Al-Burooj", "The Constellations"],
-    ["At-Taariq", "The Morning Star"],
-    ["Al-A'laa", "The Most High"],
-    ["Al-Ghaashiya", "The Overwhelming"],
-    ["Al-Fajr", "The Dawn"],
-    ["Al-Balad", "The City"],
-    ["Ash-Shams", "The Sun"],
-    ["Al-Lail", "The Night"],
-    ["Ad-Dhuhaa", "The Morning Hours"],
-    ["Ash-Sharh", "The Consolation"],
-    ["At-Tin", "The Fig"],
-    ["Al-Alaq", "The Clot"],
-    ["Al-Qadr", "The Power, Fate"],
-    ["Al-Bayyina", "The Evidence"],
-    ["Az-Zalzala", "The Earthquake"],
-    ["Al-Aadiyaat", "The Chargers"],
-    ["Al-Qaari'a", "The Calamity"],
-    ["At-Takaathur", "Competition"],
-    ["Al-Asr", "The Declining Day, Epoch"],
-    ["Al-Humaza", "The Traducer"],
-    ["Al-Fil", "The Elephant"],
-    ["Quraish", "Quraysh"],
-    ["Al-Maa'un", "Almsgiving"],
-    ["Al-Kawthar", "Abundance"],
-    ["Al-Kaafiroon", "The Disbelievers"],
-    ["An-Nasr", "Divine Support"],
-    ["Al-Masad", "The Palm Fibre"],
-    ["Al-Ikhlaas", "Sincerity"],
-    ["Al-Falaq", "The Dawn"],
-    ["An-Naas", "Mankind"],
-];
-//# sourceMappingURL=sura.en.js.map
\ No newline at end of file
diff --git a/lib_es/i18n/sura.en.js.map b/lib_es/i18n/sura.en.js.map
deleted file mode 100644
index 70b8dba..0000000
--- a/lib_es/i18n/sura.en.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.en.js","sourceRoot":"","sources":["../../src/i18n/sura.en.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/json/sura.en.ts b/lib_es/i18n/sura.en.mjs
similarity index 97%
rename from dist/json/sura.en.ts
rename to lib_es/i18n/sura.en.mjs
index 036cba0..0af2b32 100644
--- a/dist/json/sura.en.ts
+++ b/lib_es/i18n/sura.en.mjs
@@ -1,5 +1,4 @@
-import { SuraName } from "../types"
-export const suraNames: (SuraName | [])[] = [
+export const suraNames = [
   [],
   ["Al-Faatiha", "The Opening"],
   ["Al-Baqara", "The Cow"],
@@ -114,5 +113,5 @@ export const suraNames: (SuraName | [])[] = [
   ["Al-Masad", "The Palm Fibre"],
   ["Al-Ikhlaas", "Sincerity"],
   ["Al-Falaq", "The Dawn"],
-  ["An-Naas", "Mankind"],
-]
+  ["An-Naas", "Mankind"]
+];
diff --git a/types/i18n/sura.ru.d.ts b/lib_es/i18n/sura.ru.d.ts
similarity index 100%
rename from types/i18n/sura.ru.d.ts
rename to lib_es/i18n/sura.ru.d.ts
diff --git a/lib_es/i18n/sura.ru.js b/lib_es/i18n/sura.ru.js
deleted file mode 100644
index d79dd12..0000000
--- a/lib_es/i18n/sura.ru.js
+++ /dev/null
@@ -1,118 +0,0 @@
-export const suraNames = [
-    [],
-    ["Аль-Фатиха", "Открывающая Коран"],
-    ["Аль-Бакара", "Корова"],
-    ["Аль ‘Имран", "Семейство ‘Имрана"],
-    ["Ан-Ниса", "Женщины"],
-    ["Аль-Маида", "Трапеза"],
-    ["Аль-Ан‘ам", "Скот"],
-    ["Аль-А‘раф", "Ограды"],
-    ["Аль-Анфаль", "Военная добыча"],
-    ["Ат-Тауба", "Покаяние"],
-    ["Юнус", "Иона"],
-    ["Худ", "Худ"],
-    ["Юсуф", "Иосиф"],
-    ["Ар-Ра‘д", "Гром"],
-    ["Ибрахим", "Авраам"],
-    ["Аль-Хиджр", "Хиджр"],
-    ["Ан-Нахль", "Пчёлы"],
-    ["Аль-Исра", "Ночной перенос"],
-    ["Аль-Кяхф", "Пещера"],
-    ["Марьям", "Мария"],
-    ["Та, ха", "Та, ха"],
-    ["Аль-Анбия", "Пророки"],
-    ["Аль-Хаджж", "Хадж"],
-    ["Аль-Му’минун", "Верующие"],
-    ["Ан-Нур", "Свет"],
-    ["Аль-Фуркан", "Различение"],
-    ["Аш-Шу‘ара", "Поэты"],
-    ["Ан-Намль", "Муравьи"],
-    ["Аль-Касас", "Рассказ"],
-    ["Аль-‘Анкабут", "Паук"],
-    ["Ар-Рум", "Ромеи"],
-    ["Лукман", "Лукман"],
-    ["Ас-Саджда", "Земной поклон"],
-    ["Аль-Ахзаб", "Полчища"],
-    ["Саба’", "Сава"],
-    ["Фатыр", "Зиждитель"],
-    ["Йа, син", "Йа, син"],
-    ["Ас-Саффат", "Стоящие в ряд"],
-    ["Сад", "Сад"],
-    ["Аз-Зумар", "Толпы"],
-    ["Гафир", "Прощающий"],
-    ["Фуссылят", "Разъяснены"],
-    ["Аш-Шура", "Совет"],
-    ["Аз-Зухруф", "Украшения"],
-    ["Ад-Духан", "Дым"],
-    ["Аль-Джасия", "Коленопреклонённые"],
-    ["Аль-Ахкаф", "Барханы"],
-    ["Мухаммад", "Мухаммад"],
-    ["Аль-Фатх", "Победа"],
-    ["Аль-Худжурат", "Покои"],
-    ["Каф", "Каф"],
-    ["Аз-Зарият", "Рассеивающие"],
-    ["Ат-Тур", "Гора"],
-    ["Ан-Наджм", "Звезда"],
-    ["Аль-Камар", "Луна"],
-    ["Ар-Рахман", "Милостивый"],
-    ["Аль-Ваки‘а", "Неизбежное"],
-    ["Аль-Хадид", "Железо"],
-    ["Аль-Муджадиля", "Препирающаяся"],
-    ["Аль-Хашр", "Сбор"],
-    ["Аль-Мумтахана", "Испытуемая"],
-    ["Ас-Сафф", "Ряд"],
-    ["Аль-Джуму‘а", "Собрание"],
-    ["Аль-Мунафикун", "Лицемеры"],
-    ["Ат-Тагабун", "Обделение"],
-    ["Ат-Таляк", "Развод"],
-    ["Ат-Тахрим", "Запрещение"],
-    ["Аль-Мульк", "Власть"],
-    ["Аль-Калям", "Перо"],
-    ["Аль-Хакка", "Неминуемое"],
-    ["Аль-Ма‘аридж", "Степени"],
-    ["Нух", "Ной"],
-    ["Аль-Джинн", "Джинны"],
-    ["Аль-Муззаммиль", "Закутавшийся"],
-    ["Аль-Муддассир", "Завернувшийся"],
-    ["Аль-Кияма", "Воскресение"],
-    ["Аль-Инсан", "Человек"],
-    ["Аль-Мурсалят", "Посылаемые"],
-    ["Ан-Наба’", "Весть"],
-    ["Ан-Нази‘ат", "Вырывающие"],
-    ["‘Абаса", "Нахмурился"],
-    ["Ат-Таквир", "Сворачивание"],
-    ["Аль-Инфитар", "Раскалывание"],
-    ["Аль-Мутаффифин", "Обвешивающие"],
-    ["Аль-Иншикак", "Разверзнется"],
-    ["Аль-Бурудж", "Созвездия"],
-    ["Ат-Тарик", "Ночной гость"],
-    ["Аль-А‘ля", "Всевышний"],
-    ["Аль-Гашия", "Покрывающее"],
-    ["Аль-Фаджр", "Заря"],
-    ["Аль-Баляд", "Город"],
-    ["Аш-Шамс", "Солнце"],
-    ["Аль-Лейль", "Ночь"],
-    ["Ад-Духа", "Утро"],
-    ["Аль-Инширах", "Раскрытие"],
-    ["Ат-Тин", "Смоковница"],
-    ["Аль-‘Аляк", "Сгусток крови"],
-    ["Аль-Кадр", "Величие"],
-    ["Аль-Баййина", "Ясный довод"],
-    ["Аз-Зальзаля", "Сотрясение"],
-    ["Аль-‘Адият", "Скачущие"],
-    ["Аль-Кари‘а", "Поражающее"],
-    ["Ат-Такясур", "Соперничество"],
-    ["Аль-‘Аср", "Предвечернее время"],
-    ["Аль-Хумаза", "Хулитель"],
-    ["Аль-Филь", "Слон"],
-    ["Курайш", "Курайшиты"],
-    ["Аль-Ма‘ун", "Утварь"],
-    ["Аль-Каусар", "Каусар"],
-    ["Аль-Кяфирун", "Неверующие"],
-    ["Ан-Наср", "Помощь"],
-    ["Аль-Масад", "Пальмовые волокна"],
-    ["Аль-Ихляс", "Очищение веры"],
-    ["Аль-Фаляк", "Рассвет"],
-    ["Ан-Нас", "Люди"],
-];
-//# sourceMappingURL=sura.ru.js.map
\ No newline at end of file
diff --git a/lib_es/i18n/sura.ru.js.map b/lib_es/i18n/sura.ru.js.map
deleted file mode 100644
index 61b7945..0000000
--- a/lib_es/i18n/sura.ru.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sura.ru.js","sourceRoot":"","sources":["../../src/i18n/sura.ru.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_es/i18n/sura.ru.mjs b/lib_es/i18n/sura.ru.mjs
new file mode 100644
index 0000000..b28463a
--- /dev/null
+++ b/lib_es/i18n/sura.ru.mjs
@@ -0,0 +1,117 @@
+export const suraNames = [
+  [],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0438\u0445\u0430", "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0430\u044F \u041A\u043E\u0440\u0430\u043D"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043A\u0430\u0440\u0430", "\u041A\u043E\u0440\u043E\u0432\u0430"],
+  ["\u0410\u043B\u044C \u2018\u0418\u043C\u0440\u0430\u043D", "\u0421\u0435\u043C\u0435\u0439\u0441\u0442\u0432\u043E \u2018\u0418\u043C\u0440\u0430\u043D\u0430"],
+  ["\u0410\u043D-\u041D\u0438\u0441\u0430", "\u0416\u0435\u043D\u0449\u0438\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0438\u0434\u0430", "\u0422\u0440\u0430\u043F\u0435\u0437\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u2018\u0430\u043C", "\u0421\u043A\u043E\u0442"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u0440\u0430\u0444", "\u041E\u0433\u0440\u0430\u0434\u044B"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0444\u0430\u043B\u044C", "\u0412\u043E\u0435\u043D\u043D\u0430\u044F \u0434\u043E\u0431\u044B\u0447\u0430"],
+  ["\u0410\u0442-\u0422\u0430\u0443\u0431\u0430", "\u041F\u043E\u043A\u0430\u044F\u043D\u0438\u0435"],
+  ["\u042E\u043D\u0443\u0441", "\u0418\u043E\u043D\u0430"],
+  ["\u0425\u0443\u0434", "\u0425\u0443\u0434"],
+  ["\u042E\u0441\u0443\u0444", "\u0418\u043E\u0441\u0438\u0444"],
+  ["\u0410\u0440-\u0420\u0430\u2018\u0434", "\u0413\u0440\u043E\u043C"],
+  ["\u0418\u0431\u0440\u0430\u0445\u0438\u043C", "\u0410\u0432\u0440\u0430\u0430\u043C"],
+  ["\u0410\u043B\u044C-\u0425\u0438\u0434\u0436\u0440", "\u0425\u0438\u0434\u0436\u0440"],
+  ["\u0410\u043D-\u041D\u0430\u0445\u043B\u044C", "\u041F\u0447\u0451\u043B\u044B"],
+  ["\u0410\u043B\u044C-\u0418\u0441\u0440\u0430", "\u041D\u043E\u0447\u043D\u043E\u0439 \u043F\u0435\u0440\u0435\u043D\u043E\u0441"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0445\u0444", "\u041F\u0435\u0449\u0435\u0440\u0430"],
+  ["\u041C\u0430\u0440\u044C\u044F\u043C", "\u041C\u0430\u0440\u0438\u044F"],
+  ["\u0422\u0430, \u0445\u0430", "\u0422\u0430, \u0445\u0430"],
+  ["\u0410\u043B\u044C-\u0410\u043D\u0431\u0438\u044F", "\u041F\u0440\u043E\u0440\u043E\u043A\u0438"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0436\u0436", "\u0425\u0430\u0434\u0436"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u2019\u043C\u0438\u043D\u0443\u043D", "\u0412\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0443\u0440", "\u0421\u0432\u0435\u0442"],
+  ["\u0410\u043B\u044C-\u0424\u0443\u0440\u043A\u0430\u043D", "\u0420\u0430\u0437\u043B\u0438\u0447\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0448-\u0428\u0443\u2018\u0430\u0440\u0430", "\u041F\u043E\u044D\u0442\u044B"],
+  ["\u0410\u043D-\u041D\u0430\u043C\u043B\u044C", "\u041C\u0443\u0440\u0430\u0432\u044C\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0441\u0430\u0441", "\u0420\u0430\u0441\u0441\u043A\u0430\u0437"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043D\u043A\u0430\u0431\u0443\u0442", "\u041F\u0430\u0443\u043A"],
+  ["\u0410\u0440-\u0420\u0443\u043C", "\u0420\u043E\u043C\u0435\u0438"],
+  ["\u041B\u0443\u043A\u043C\u0430\u043D", "\u041B\u0443\u043A\u043C\u0430\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0434\u0436\u0434\u0430", "\u0417\u0435\u043C\u043D\u043E\u0439 \u043F\u043E\u043A\u043B\u043E\u043D"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u0437\u0430\u0431", "\u041F\u043E\u043B\u0447\u0438\u0449\u0430"],
+  ["\u0421\u0430\u0431\u0430\u2019", "\u0421\u0430\u0432\u0430"],
+  ["\u0424\u0430\u0442\u044B\u0440", "\u0417\u0438\u0436\u0434\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0419\u0430, \u0441\u0438\u043D", "\u0419\u0430, \u0441\u0438\u043D"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444\u0430\u0442", "\u0421\u0442\u043E\u044F\u0449\u0438\u0435 \u0432 \u0440\u044F\u0434"],
+  ["\u0421\u0430\u0434", "\u0421\u0430\u0434"],
+  ["\u0410\u0437-\u0417\u0443\u043C\u0430\u0440", "\u0422\u043E\u043B\u043F\u044B"],
+  ["\u0413\u0430\u0444\u0438\u0440", "\u041F\u0440\u043E\u0449\u0430\u044E\u0449\u0438\u0439"],
+  ["\u0424\u0443\u0441\u0441\u044B\u043B\u044F\u0442", "\u0420\u0430\u0437\u044A\u044F\u0441\u043D\u0435\u043D\u044B"],
+  ["\u0410\u0448-\u0428\u0443\u0440\u0430", "\u0421\u043E\u0432\u0435\u0442"],
+  ["\u0410\u0437-\u0417\u0443\u0445\u0440\u0443\u0444", "\u0423\u043A\u0440\u0430\u0448\u0435\u043D\u0438\u044F"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430\u043D", "\u0414\u044B\u043C"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0430\u0441\u0438\u044F", "\u041A\u043E\u043B\u0435\u043D\u043E\u043F\u0440\u0435\u043A\u043B\u043E\u043D\u0451\u043D\u043D\u044B\u0435"],
+  ["\u0410\u043B\u044C-\u0410\u0445\u043A\u0430\u0444", "\u0411\u0430\u0440\u0445\u0430\u043D\u044B"],
+  ["\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434", "\u041C\u0443\u0445\u0430\u043C\u043C\u0430\u0434"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0442\u0445", "\u041F\u043E\u0431\u0435\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u0434\u0436\u0443\u0440\u0430\u0442", "\u041F\u043E\u043A\u043E\u0438"],
+  ["\u041A\u0430\u0444", "\u041A\u0430\u0444"],
+  ["\u0410\u0437-\u0417\u0430\u0440\u0438\u044F\u0442", "\u0420\u0430\u0441\u0441\u0435\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0443\u0440", "\u0413\u043E\u0440\u0430"],
+  ["\u0410\u043D-\u041D\u0430\u0434\u0436\u043C", "\u0417\u0432\u0435\u0437\u0434\u0430"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043C\u0430\u0440", "\u041B\u0443\u043D\u0430"],
+  ["\u0410\u0440-\u0420\u0430\u0445\u043C\u0430\u043D", "\u041C\u0438\u043B\u043E\u0441\u0442\u0438\u0432\u044B\u0439"],
+  ["\u0410\u043B\u044C-\u0412\u0430\u043A\u0438\u2018\u0430", "\u041D\u0435\u0438\u0437\u0431\u0435\u0436\u043D\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0434\u0438\u0434", "\u0416\u0435\u043B\u0435\u0437\u043E"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0436\u0430\u0434\u0438\u043B\u044F", "\u041F\u0440\u0435\u043F\u0438\u0440\u0430\u044E\u0449\u0430\u044F\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u0448\u0440", "\u0421\u0431\u043E\u0440"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043C\u0442\u0430\u0445\u0430\u043D\u0430", "\u0418\u0441\u043F\u044B\u0442\u0443\u0435\u043C\u0430\u044F"],
+  ["\u0410\u0441-\u0421\u0430\u0444\u0444", "\u0420\u044F\u0434"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0443\u043C\u0443\u2018\u0430", "\u0421\u043E\u0431\u0440\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043D\u0430\u0444\u0438\u043A\u0443\u043D", "\u041B\u0438\u0446\u0435\u043C\u0435\u0440\u044B"],
+  ["\u0410\u0442-\u0422\u0430\u0433\u0430\u0431\u0443\u043D", "\u041E\u0431\u0434\u0435\u043B\u0435\u043D\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043B\u044F\u043A", "\u0420\u0430\u0437\u0432\u043E\u0434"],
+  ["\u0410\u0442-\u0422\u0430\u0445\u0440\u0438\u043C", "\u0417\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u043B\u044C\u043A", "\u0412\u043B\u0430\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u043B\u044F\u043C", "\u041F\u0435\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0425\u0430\u043A\u043A\u0430", "\u041D\u0435\u043C\u0438\u043D\u0443\u0435\u043C\u043E\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0430\u0440\u0438\u0434\u0436", "\u0421\u0442\u0435\u043F\u0435\u043D\u0438"],
+  ["\u041D\u0443\u0445", "\u041D\u043E\u0439"],
+  ["\u0410\u043B\u044C-\u0414\u0436\u0438\u043D\u043D", "\u0414\u0436\u0438\u043D\u043D\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0437\u0437\u0430\u043C\u043C\u0438\u043B\u044C", "\u0417\u0430\u043A\u0443\u0442\u0430\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0434\u0434\u0430\u0441\u0441\u0438\u0440", "\u0417\u0430\u0432\u0435\u0440\u043D\u0443\u0432\u0448\u0438\u0439\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u041A\u0438\u044F\u043C\u0430", "\u0412\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0441\u0430\u043D", "\u0427\u0435\u043B\u043E\u0432\u0435\u043A"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0440\u0441\u0430\u043B\u044F\u0442", "\u041F\u043E\u0441\u044B\u043B\u0430\u0435\u043C\u044B\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0431\u0430\u2019", "\u0412\u0435\u0441\u0442\u044C"],
+  ["\u0410\u043D-\u041D\u0430\u0437\u0438\u2018\u0430\u0442", "\u0412\u044B\u0440\u044B\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u2018\u0410\u0431\u0430\u0441\u0430", "\u041D\u0430\u0445\u043C\u0443\u0440\u0438\u043B\u0441\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u0432\u0438\u0440", "\u0421\u0432\u043E\u0440\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0444\u0438\u0442\u0430\u0440", "\u0420\u0430\u0441\u043A\u0430\u043B\u044B\u0432\u0430\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041C\u0443\u0442\u0430\u0444\u0444\u0438\u0444\u0438\u043D", "\u041E\u0431\u0432\u0435\u0448\u0438\u0432\u0430\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u043A\u0430\u043A", "\u0420\u0430\u0437\u0432\u0435\u0440\u0437\u043D\u0435\u0442\u0441\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0443\u0440\u0443\u0434\u0436", "\u0421\u043E\u0437\u0432\u0435\u0437\u0434\u0438\u044F"],
+  ["\u0410\u0442-\u0422\u0430\u0440\u0438\u043A", "\u041D\u043E\u0447\u043D\u043E\u0439 \u0433\u043E\u0441\u0442\u044C"],
+  ["\u0410\u043B\u044C-\u0410\u2018\u043B\u044F", "\u0412\u0441\u0435\u0432\u044B\u0448\u043D\u0438\u0439"],
+  ["\u0410\u043B\u044C-\u0413\u0430\u0448\u0438\u044F", "\u041F\u043E\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u0434\u0436\u0440", "\u0417\u0430\u0440\u044F"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u043B\u044F\u0434", "\u0413\u043E\u0440\u043E\u0434"],
+  ["\u0410\u0448-\u0428\u0430\u043C\u0441", "\u0421\u043E\u043B\u043D\u0446\u0435"],
+  ["\u0410\u043B\u044C-\u041B\u0435\u0439\u043B\u044C", "\u041D\u043E\u0447\u044C"],
+  ["\u0410\u0434-\u0414\u0443\u0445\u0430", "\u0423\u0442\u0440\u043E"],
+  ["\u0410\u043B\u044C-\u0418\u043D\u0448\u0438\u0440\u0430\u0445", "\u0420\u0430\u0441\u043A\u0440\u044B\u0442\u0438\u0435"],
+  ["\u0410\u0442-\u0422\u0438\u043D", "\u0421\u043C\u043E\u043A\u043E\u0432\u043D\u0438\u0446\u0430"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u043B\u044F\u043A", "\u0421\u0433\u0443\u0441\u0442\u043E\u043A \u043A\u0440\u043E\u0432\u0438"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0434\u0440", "\u0412\u0435\u043B\u0438\u0447\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u0411\u0430\u0439\u0439\u0438\u043D\u0430", "\u042F\u0441\u043D\u044B\u0439 \u0434\u043E\u0432\u043E\u0434"],
+  ["\u0410\u0437-\u0417\u0430\u043B\u044C\u0437\u0430\u043B\u044F", "\u0421\u043E\u0442\u0440\u044F\u0441\u0435\u043D\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0434\u0438\u044F\u0442", "\u0421\u043A\u0430\u0447\u0443\u0449\u0438\u0435"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0440\u0438\u2018\u0430", "\u041F\u043E\u0440\u0430\u0436\u0430\u044E\u0449\u0435\u0435"],
+  ["\u0410\u0442-\u0422\u0430\u043A\u044F\u0441\u0443\u0440", "\u0421\u043E\u043F\u0435\u0440\u043D\u0438\u0447\u0435\u0441\u0442\u0432\u043E"],
+  ["\u0410\u043B\u044C-\u2018\u0410\u0441\u0440", "\u041F\u0440\u0435\u0434\u0432\u0435\u0447\u0435\u0440\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F"],
+  ["\u0410\u043B\u044C-\u0425\u0443\u043C\u0430\u0437\u0430", "\u0425\u0443\u043B\u0438\u0442\u0435\u043B\u044C"],
+  ["\u0410\u043B\u044C-\u0424\u0438\u043B\u044C", "\u0421\u043B\u043E\u043D"],
+  ["\u041A\u0443\u0440\u0430\u0439\u0448", "\u041A\u0443\u0440\u0430\u0439\u0448\u0438\u0442\u044B"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u2018\u0443\u043D", "\u0423\u0442\u0432\u0430\u0440\u044C"],
+  ["\u0410\u043B\u044C-\u041A\u0430\u0443\u0441\u0430\u0440", "\u041A\u0430\u0443\u0441\u0430\u0440"],
+  ["\u0410\u043B\u044C-\u041A\u044F\u0444\u0438\u0440\u0443\u043D", "\u041D\u0435\u0432\u0435\u0440\u0443\u044E\u0449\u0438\u0435"],
+  ["\u0410\u043D-\u041D\u0430\u0441\u0440", "\u041F\u043E\u043C\u043E\u0449\u044C"],
+  ["\u0410\u043B\u044C-\u041C\u0430\u0441\u0430\u0434", "\u041F\u0430\u043B\u044C\u043C\u043E\u0432\u044B\u0435 \u0432\u043E\u043B\u043E\u043A\u043D\u0430"],
+  ["\u0410\u043B\u044C-\u0418\u0445\u043B\u044F\u0441", "\u041E\u0447\u0438\u0449\u0435\u043D\u0438\u0435 \u0432\u0435\u0440\u044B"],
+  ["\u0410\u043B\u044C-\u0424\u0430\u043B\u044F\u043A", "\u0420\u0430\u0441\u0441\u0432\u0435\u0442"],
+  ["\u0410\u043D-\u041D\u0430\u0441", "\u041B\u044E\u0434\u0438"]
+];
diff --git a/types/index.d.ts b/lib_es/index.d.ts
similarity index 82%
rename from types/index.d.ts
rename to lib_es/index.d.ts
index 12512c1..351af84 100644
--- a/types/index.d.ts
+++ b/lib_es/index.d.ts
@@ -1,10 +1,6 @@
-export { suraNames as suraNamesEn } from "./i18n/sura.en";
-export { suraNames as suraNamesRu } from "./i18n/sura.ru";
-export { RukuList } from "./lists/rukuList";
+export type { QuranMeta } from "./const";
+export type { AyahId, AyahNo, Juz, JuzHizb, JuzMeta, Page, PageMeta, Sajda, SajdaType, SuraName, Surah, SurahAyah, SurahAyahSegment, SurahMeta } from "./types";
 export { ayaStringSplitter } from "./ayaStringSplitter";
-export { checkValidAyahId } from "./checkValidAyahId";
-export { checkValidSurah } from "./checkValidSurah";
-export { checkValidSurahAyah } from "./checkValidSurahAyah";
 export { meta } from "./const";
 export { findAyaidBySurah } from "./findAyaidBySurah";
 export { findJuz } from "./findJuz";
@@ -24,8 +20,12 @@ export { HizbQuarterList } from "./lists/hizbList";
 export { JuzList } from "./lists/juzList";
 export { ManzilList } from "./lists/manzilList";
 export { PageList } from "./lists/pageList";
+export { RukuList } from "./lists/rukuList";
 export { SajdaList } from "./lists/sajdaList";
 export { SuraList } from "./lists/surahList";
 export { nextAyah } from "./nextAyah";
 export { pageMeta } from "./pageMeta";
 export { prevAyah } from "./prevAyah";
+export { checkValidAyahId, checkValidSurah, checkValidSurahAyah } from "./validation";
+export { suraNames as suraNamesEn } from "./i18n/sura.en";
+export { suraNames as suraNamesRu } from "./i18n/sura.ru";
diff --git a/lib_es/index.js b/lib_es/index.js
deleted file mode 100644
index 1d4340c..0000000
--- a/lib_es/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-// Quran Meta
-// export {
-//   AyahId,
-//   AyahNo, Juz, JuzMeta, Page, PageMeta, Sajda,
-//   Surah, SurahAyah, SurahMeta
-// }
-//export default QuranMeta;
-//------------------ Sura Data ---------------------
-export { suraNames as suraNamesEn } from "./i18n/sura.en";
-export { suraNames as suraNamesRu } from "./i18n/sura.ru";
-//------------------ Ruku Data ---------------------
-// export Ruku  from "~/js/qdata-ruku.json"
-export { RukuList } from "./lists/rukuList";
-//export default QuranMeta;
-export { ayaStringSplitter } from "./ayaStringSplitter";
-export { checkValidAyahId } from "./checkValidAyahId";
-export { checkValidSurah } from "./checkValidSurah";
-export { checkValidSurahAyah } from "./checkValidSurahAyah";
-export { meta } from "./const";
-export { findAyaidBySurah } from "./findAyaidBySurah";
-export { findJuz } from "./findJuz";
-export { findJuzAndShift } from "./findJuzAndShift";
-export { findJuzByAyaid } from "./findJuzByAyaid";
-export { findJuzHizb } from "./findJuzHizb";
-export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid";
-export { findJuzMetaBySurah } from "./findJuzMetaBySurah";
-export { findPage } from "./findPage";
-export { findRangeAroundAyah } from "./findRangeAroundAyah";
-export { findSurahByAyaid } from "./findSurahByAyaid";
-export { getAyaCountinSura } from "./getAyaCountinSura";
-export { getSurahMeta } from "./getSurahMeta";
-export { isAyahJuzFirst } from "./isAyahJuzFirst";
-export { isAyahPageFirst } from "./isAyahPageFirst";
-export { HizbQuarterList } from "./lists/hizbList";
-export { JuzList } from "./lists/juzList";
-export { ManzilList } from "./lists/manzilList";
-export { PageList } from "./lists/pageList";
-export { SajdaList } from "./lists/sajdaList";
-export { SuraList } from "./lists/surahList";
-export { nextAyah } from "./nextAyah";
-export { pageMeta } from "./pageMeta";
-export { prevAyah } from "./prevAyah";
-//# sourceMappingURL=index.js.map
\ No newline at end of file
diff --git a/lib_es/index.js.map b/lib_es/index.js.map
deleted file mode 100644
index cc7647f..0000000
--- a/lib_es/index.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AAEb,WAAW;AACX,YAAY;AACZ,iDAAiD;AACjD,gCAAgC;AAChC,IAAI;AACJ,2BAA2B;AAC3B,oDAAoD;AAEpD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGzD,oDAAoD;AACpD,2CAA2C;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,2BAA2B;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA"}
\ No newline at end of file
diff --git a/lib_es/index.mjs b/lib_es/index.mjs
new file mode 100644
index 0000000..b3d9fa4
--- /dev/null
+++ b/lib_es/index.mjs
@@ -0,0 +1,29 @@
+export { ayaStringSplitter } from "./ayaStringSplitter.mjs";
+export { meta } from "./const.mjs";
+export { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+export { findJuz } from "./findJuz.mjs";
+export { findJuzAndShift } from "./findJuzAndShift.mjs";
+export { findJuzByAyaid } from "./findJuzByAyaid.mjs";
+export { findJuzHizb } from "./findJuzHizb.mjs";
+export { findJuzHizbByAyaid } from "./findJuzHizbByAyaid.mjs";
+export { findJuzMetaBySurah } from "./findJuzMetaBySurah.mjs";
+export { findPage } from "./findPage.mjs";
+export { findRangeAroundAyah } from "./findRangeAroundAyah.mjs";
+export { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+export { getAyaCountinSura } from "./getAyaCountinSura.mjs";
+export { getSurahMeta } from "./getSurahMeta.mjs";
+export { isAyahJuzFirst } from "./isAyahJuzFirst.mjs";
+export { isAyahPageFirst } from "./isAyahPageFirst.mjs";
+export { HizbQuarterList } from "./lists/hizbList.mjs";
+export { JuzList } from "./lists/juzList.mjs";
+export { ManzilList } from "./lists/manzilList.mjs";
+export { PageList } from "./lists/pageList.mjs";
+export { RukuList } from "./lists/rukuList.mjs";
+export { SajdaList } from "./lists/sajdaList.mjs";
+export { SuraList } from "./lists/surahList.mjs";
+export { nextAyah } from "./nextAyah.mjs";
+export { pageMeta } from "./pageMeta.mjs";
+export { prevAyah } from "./prevAyah.mjs";
+export { checkValidAyahId, checkValidSurah, checkValidSurahAyah } from "./validation.mjs";
+export { suraNames as suraNamesEn } from "./i18n/sura.en.mjs";
+export { suraNames as suraNamesRu } from "./i18n/sura.ru.mjs";
diff --git a/types/isAyahJuzFirst.d.ts b/lib_es/isAyahJuzFirst.d.ts
similarity index 100%
rename from types/isAyahJuzFirst.d.ts
rename to lib_es/isAyahJuzFirst.d.ts
diff --git a/lib_es/isAyahJuzFirst.js b/lib_es/isAyahJuzFirst.js
deleted file mode 100644
index 9438866..0000000
--- a/lib_es/isAyahJuzFirst.js
+++ /dev/null
@@ -1,22 +0,0 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { JuzList } from "./lists/juzList";
-import { binarySearch } from "./utils";
-/**
- * Returns the Juz (part) number that the given Ayah (verse) belongs to.
- *
- *
- * @param surah - The Surah (chapter) number.
- * @param ayah - The Ayah (verse) number.
- * @param ayahMode - If true, the `ayah` parameter is treated as an Ayah ID instead of a Surah and Ayah number.
- * @returns The Juz (part) number that the given Ayah belongs to. Returns Positive number if aya is first ayah of juz, number is juz number
- */
-export function isAyahJuzFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(JuzList, ayahId);
-    // return JuzList.findIndex((x: AyahId) => x == ayahId)
-}
-//# sourceMappingURL=isAyahJuzFirst.js.map
\ No newline at end of file
diff --git a/lib_es/isAyahJuzFirst.js.map b/lib_es/isAyahJuzFirst.js.map
deleted file mode 100644
index b070282..0000000
--- a/lib_es/isAyahJuzFirst.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isAyahJuzFirst.js","sourceRoot":"","sources":["../src/isAyahJuzFirst.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrC,uDAAuD;AACzD,CAAC"}
\ No newline at end of file
diff --git a/lib_es/isAyahJuzFirst.mjs b/lib_es/isAyahJuzFirst.mjs
new file mode 100644
index 0000000..c4eb0f6
--- /dev/null
+++ b/lib_es/isAyahJuzFirst.mjs
@@ -0,0 +1,8 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { JuzList } from "./lists/juzList.mjs";
+import { binarySearch } from "./utils.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function isAyahJuzFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(JuzList, ayahId);
+}
diff --git a/types/isAyahPageFirst.d.ts b/lib_es/isAyahPageFirst.d.ts
similarity index 100%
rename from types/isAyahPageFirst.d.ts
rename to lib_es/isAyahPageFirst.d.ts
diff --git a/lib_es/isAyahPageFirst.js b/lib_es/isAyahPageFirst.js
deleted file mode 100644
index f0dfe19..0000000
--- a/lib_es/isAyahPageFirst.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import { checkValidAyahId } from "./checkValidAyahId";
-import { checkValidSurah } from "./checkValidSurah";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { PageList } from "./lists/pageList";
-import { binarySearch } from "./utils";
-/**
- * Determines if the given ayah is the first ayah of a juz.
- *
- * @param surah - The surah number.
- * @param ayah - The ayah number.
- * @param ayahMode - Optional flag to indicate if the ayah number is already a valid ayah ID.
- * @returns The juz number if the ayah is the first ayah of the juz, otherwise -1.
- */
-export function isAyahPageFirst(surah, ayah, ayahMode = false) {
-    const ayahId = ayahMode
-        ? (checkValidAyahId(ayah) && ayah)
-        : (checkValidSurah(surah) && findAyaidBySurah(surah, ayah));
-    return binarySearch(PageList, ayahId);
-    // return PageList.findIndex((x: AyahId) => x == ayahId)
-}
-//# sourceMappingURL=isAyahPageFirst.js.map
\ No newline at end of file
diff --git a/lib_es/isAyahPageFirst.js.map b/lib_es/isAyahPageFirst.js.map
deleted file mode 100644
index 5ee1775..0000000
--- a/lib_es/isAyahPageFirst.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"isAyahPageFirst.js","sourceRoot":"","sources":["../src/isAyahPageFirst.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGvC;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAY,EACZ,IAAY,EACZ,QAAQ,GAAG,KAAK;IAEhB,MAAM,MAAM,GAAW,QAAQ;QAC7B,CAAC,CAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAY;QAC9C,CAAC,CAAE,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAY,CAAC;IAE1E,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,wDAAwD;AAC1D,CAAC"}
\ No newline at end of file
diff --git a/lib_es/isAyahPageFirst.mjs b/lib_es/isAyahPageFirst.mjs
new file mode 100644
index 0000000..f9afff1
--- /dev/null
+++ b/lib_es/isAyahPageFirst.mjs
@@ -0,0 +1,8 @@
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { PageList } from "./lists/pageList.mjs";
+import { binarySearch } from "./utils.mjs";
+import { checkValidAyahId, checkValidSurah } from "./validation.mjs";
+export function isAyahPageFirst(surah, ayah, ayahMode = false) {
+  const ayahId = ayahMode ? checkValidAyahId(ayah) && ayah : checkValidSurah(surah) && findAyaidBySurah(surah, ayah);
+  return binarySearch(PageList, ayahId);
+}
diff --git a/lib_es/json/qdata-hizb.json b/lib_es/json/qdata-hizb.json
new file mode 100644
index 0000000..a0acf70
--- /dev/null
+++ b/lib_es/json/qdata-hizb.json
@@ -0,0 +1,244 @@
+[
+  [],
+  [1, 1],
+  [2, 26],
+  [2, 44],
+  [2, 60],
+  [2, 75],
+  [2, 92],
+  [2, 106],
+  [2, 124],
+  [2, 142],
+  [2, 158],
+  [2, 177],
+  [2, 189],
+  [2, 203],
+  [2, 219],
+  [2, 233],
+  [2, 243],
+  [2, 253],
+  [2, 263],
+  [2, 272],
+  [2, 283],
+  [3, 15],
+  [3, 33],
+  [3, 52],
+  [3, 75],
+  [3, 93],
+  [3, 113],
+  [3, 133],
+  [3, 153],
+  [3, 171],
+  [3, 186],
+  [4, 1],
+  [4, 12],
+  [4, 24],
+  [4, 36],
+  [4, 58],
+  [4, 74],
+  [4, 88],
+  [4, 100],
+  [4, 114],
+  [4, 135],
+  [4, 148],
+  [4, 163],
+  [5, 1],
+  [5, 12],
+  [5, 27],
+  [5, 41],
+  [5, 51],
+  [5, 67],
+  [5, 82],
+  [5, 97],
+  [5, 109],
+  [6, 13],
+  [6, 36],
+  [6, 59],
+  [6, 74],
+  [6, 95],
+  [6, 111],
+  [6, 127],
+  [6, 141],
+  [6, 151],
+  [7, 1],
+  [7, 31],
+  [7, 47],
+  [7, 65],
+  [7, 88],
+  [7, 117],
+  [7, 142],
+  [7, 156],
+  [7, 171],
+  [7, 189],
+  [8, 1],
+  [8, 22],
+  [8, 41],
+  [8, 61],
+  [9, 1],
+  [9, 19],
+  [9, 34],
+  [9, 46],
+  [9, 60],
+  [9, 75],
+  [9, 93],
+  [9, 111],
+  [9, 122],
+  [10, 11],
+  [10, 26],
+  [10, 53],
+  [10, 71],
+  [10, 90],
+  [11, 6],
+  [11, 24],
+  [11, 41],
+  [11, 61],
+  [11, 84],
+  [11, 108],
+  [12, 7],
+  [12, 30],
+  [12, 53],
+  [12, 77],
+  [12, 101],
+  [13, 5],
+  [13, 19],
+  [13, 35],
+  [14, 10],
+  [14, 28],
+  [15, 1],
+  [15, 50],
+  [16, 1],
+  [16, 30],
+  [16, 51],
+  [16, 75],
+  [16, 90],
+  [16, 111],
+  [17, 1],
+  [17, 23],
+  [17, 50],
+  [17, 70],
+  [17, 99],
+  [18, 17],
+  [18, 32],
+  [18, 51],
+  [18, 75],
+  [18, 99],
+  [19, 22],
+  [19, 59],
+  [20, 1],
+  [20, 55],
+  [20, 83],
+  [20, 111],
+  [21, 1],
+  [21, 29],
+  [21, 51],
+  [21, 83],
+  [22, 1],
+  [22, 19],
+  [22, 38],
+  [22, 60],
+  [23, 1],
+  [23, 36],
+  [23, 75],
+  [24, 1],
+  [24, 21],
+  [24, 35],
+  [24, 53],
+  [25, 1],
+  [25, 21],
+  [25, 53],
+  [26, 1],
+  [26, 52],
+  [26, 111],
+  [26, 181],
+  [27, 1],
+  [27, 27],
+  [27, 56],
+  [27, 82],
+  [28, 12],
+  [28, 29],
+  [28, 51],
+  [28, 76],
+  [29, 1],
+  [29, 26],
+  [29, 46],
+  [30, 1],
+  [30, 31],
+  [30, 54],
+  [31, 22],
+  [32, 11],
+  [33, 1],
+  [33, 18],
+  [33, 31],
+  [33, 51],
+  [33, 60],
+  [34, 10],
+  [34, 24],
+  [34, 46],
+  [35, 15],
+  [35, 41],
+  [36, 28],
+  [36, 60],
+  [37, 22],
+  [37, 83],
+  [37, 145],
+  [38, 21],
+  [38, 52],
+  [39, 8],
+  [39, 32],
+  [39, 53],
+  [40, 1],
+  [40, 21],
+  [40, 41],
+  [40, 66],
+  [41, 9],
+  [41, 25],
+  [41, 47],
+  [42, 13],
+  [42, 27],
+  [42, 51],
+  [43, 24],
+  [43, 57],
+  [44, 17],
+  [45, 12],
+  [46, 1],
+  [46, 21],
+  [47, 10],
+  [47, 33],
+  [48, 18],
+  [49, 1],
+  [49, 14],
+  [50, 27],
+  [51, 31],
+  [52, 24],
+  [53, 26],
+  [54, 9],
+  [55, 1],
+  [56, 1],
+  [56, 75],
+  [57, 16],
+  [58, 1],
+  [58, 14],
+  [59, 11],
+  [60, 7],
+  [62, 1],
+  [63, 4],
+  [65, 1],
+  [66, 1],
+  [67, 1],
+  [68, 1],
+  [69, 1],
+  [70, 19],
+  [72, 1],
+  [73, 20],
+  [75, 1],
+  [76, 19],
+  [78, 1],
+  [80, 1],
+  [82, 1],
+  [84, 1],
+  [87, 1],
+  [90, 1],
+  [94, 1],
+  [100, 9],
+  [115, 1]
+]
diff --git a/lib_es/json/qdata-page.json b/lib_es/json/qdata-page.json
new file mode 100644
index 0000000..c1ac363
--- /dev/null
+++ b/lib_es/json/qdata-page.json
@@ -0,0 +1,608 @@
+[
+  [0, 0],
+  [1, 1],
+  [2, 1],
+  [2, 6],
+  [2, 17],
+  [2, 25],
+  [2, 30],
+  [2, 38],
+  [2, 49],
+  [2, 58],
+  [2, 62],
+  [2, 70],
+  [2, 77],
+  [2, 84],
+  [2, 89],
+  [2, 94],
+  [2, 102],
+  [2, 106],
+  [2, 113],
+  [2, 120],
+  [2, 127],
+  [2, 135],
+  [2, 142],
+  [2, 146],
+  [2, 154],
+  [2, 164],
+  [2, 170],
+  [2, 177],
+  [2, 182],
+  [2, 187],
+  [2, 191],
+  [2, 197],
+  [2, 203],
+  [2, 211],
+  [2, 216],
+  [2, 220],
+  [2, 225],
+  [2, 231],
+  [2, 234],
+  [2, 238],
+  [2, 246],
+  [2, 249],
+  [2, 253],
+  [2, 257],
+  [2, 260],
+  [2, 265],
+  [2, 270],
+  [2, 275],
+  [2, 282],
+  [2, 283],
+  [3, 1],
+  [3, 10],
+  [3, 16],
+  [3, 23],
+  [3, 30],
+  [3, 38],
+  [3, 46],
+  [3, 53],
+  [3, 62],
+  [3, 71],
+  [3, 78],
+  [3, 84],
+  [3, 92],
+  [3, 101],
+  [3, 109],
+  [3, 116],
+  [3, 122],
+  [3, 133],
+  [3, 141],
+  [3, 149],
+  [3, 154],
+  [3, 158],
+  [3, 166],
+  [3, 174],
+  [3, 181],
+  [3, 187],
+  [3, 195],
+  [4, 1],
+  [4, 7],
+  [4, 12],
+  [4, 15],
+  [4, 20],
+  [4, 24],
+  [4, 27],
+  [4, 34],
+  [4, 38],
+  [4, 45],
+  [4, 52],
+  [4, 60],
+  [4, 66],
+  [4, 75],
+  [4, 80],
+  [4, 87],
+  [4, 92],
+  [4, 95],
+  [4, 102],
+  [4, 106],
+  [4, 114],
+  [4, 122],
+  [4, 128],
+  [4, 135],
+  [4, 141],
+  [4, 148],
+  [4, 155],
+  [4, 163],
+  [4, 171],
+  [4, 176],
+  [5, 3],
+  [5, 6],
+  [5, 10],
+  [5, 14],
+  [5, 18],
+  [5, 24],
+  [5, 32],
+  [5, 37],
+  [5, 42],
+  [5, 46],
+  [5, 51],
+  [5, 58],
+  [5, 65],
+  [5, 71],
+  [5, 77],
+  [5, 83],
+  [5, 90],
+  [5, 96],
+  [5, 104],
+  [5, 109],
+  [5, 114],
+  [6, 1],
+  [6, 9],
+  [6, 19],
+  [6, 28],
+  [6, 36],
+  [6, 45],
+  [6, 53],
+  [6, 60],
+  [6, 69],
+  [6, 74],
+  [6, 82],
+  [6, 91],
+  [6, 95],
+  [6, 102],
+  [6, 111],
+  [6, 119],
+  [6, 125],
+  [6, 132],
+  [6, 138],
+  [6, 143],
+  [6, 147],
+  [6, 152],
+  [6, 158],
+  [7, 1],
+  [7, 12],
+  [7, 23],
+  [7, 31],
+  [7, 38],
+  [7, 44],
+  [7, 52],
+  [7, 58],
+  [7, 68],
+  [7, 74],
+  [7, 82],
+  [7, 88],
+  [7, 96],
+  [7, 105],
+  [7, 121],
+  [7, 131],
+  [7, 138],
+  [7, 144],
+  [7, 150],
+  [7, 156],
+  [7, 160],
+  [7, 164],
+  [7, 171],
+  [7, 179],
+  [7, 188],
+  [7, 196],
+  [8, 1],
+  [8, 9],
+  [8, 17],
+  [8, 26],
+  [8, 34],
+  [8, 41],
+  [8, 46],
+  [8, 53],
+  [8, 62],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 14],
+  [9, 21],
+  [9, 27],
+  [9, 32],
+  [9, 37],
+  [9, 41],
+  [9, 48],
+  [9, 55],
+  [9, 62],
+  [9, 69],
+  [9, 73],
+  [9, 80],
+  [9, 87],
+  [9, 94],
+  [9, 100],
+  [9, 107],
+  [9, 112],
+  [9, 118],
+  [9, 123],
+  [10, 1],
+  [10, 7],
+  [10, 15],
+  [10, 21],
+  [10, 26],
+  [10, 34],
+  [10, 43],
+  [10, 54],
+  [10, 62],
+  [10, 71],
+  [10, 79],
+  [10, 89],
+  [10, 98],
+  [10, 107],
+  [11, 6],
+  [11, 13],
+  [11, 20],
+  [11, 29],
+  [11, 38],
+  [11, 46],
+  [11, 54],
+  [11, 63],
+  [11, 72],
+  [11, 82],
+  [11, 89],
+  [11, 98],
+  [11, 109],
+  [11, 118],
+  [12, 5],
+  [12, 15],
+  [12, 23],
+  [12, 31],
+  [12, 38],
+  [12, 44],
+  [12, 53],
+  [12, 64],
+  [12, 70],
+  [12, 79],
+  [12, 87],
+  [12, 96],
+  [12, 104],
+  [13, 1],
+  [13, 6],
+  [13, 14],
+  [13, 19],
+  [13, 29],
+  [13, 35],
+  [13, 43],
+  [14, 6],
+  [14, 11],
+  [14, 19],
+  [14, 25],
+  [14, 34],
+  [14, 43],
+  [15, 1],
+  [15, 16],
+  [15, 32],
+  [15, 52],
+  [15, 71],
+  [15, 91],
+  [16, 7],
+  [16, 15],
+  [16, 27],
+  [16, 35],
+  [16, 43],
+  [16, 55],
+  [16, 65],
+  [16, 73],
+  [16, 80],
+  [16, 88],
+  [16, 94],
+  [16, 103],
+  [16, 111],
+  [16, 119],
+  [17, 1],
+  [17, 8],
+  [17, 18],
+  [17, 28],
+  [17, 39],
+  [17, 50],
+  [17, 59],
+  [17, 67],
+  [17, 76],
+  [17, 87],
+  [17, 97],
+  [17, 105],
+  [18, 5],
+  [18, 16],
+  [18, 21],
+  [18, 28],
+  [18, 35],
+  [18, 46],
+  [18, 54],
+  [18, 62],
+  [18, 75],
+  [18, 84],
+  [18, 98],
+  [19, 1],
+  [19, 12],
+  [19, 26],
+  [19, 39],
+  [19, 52],
+  [19, 65],
+  [19, 77],
+  [19, 96],
+  [20, 13],
+  [20, 38],
+  [20, 52],
+  [20, 65],
+  [20, 77],
+  [20, 88],
+  [20, 99],
+  [20, 114],
+  [20, 126],
+  [21, 1],
+  [21, 11],
+  [21, 25],
+  [21, 36],
+  [21, 45],
+  [21, 58],
+  [21, 73],
+  [21, 82],
+  [21, 91],
+  [21, 102],
+  [22, 1],
+  [22, 6],
+  [22, 16],
+  [22, 24],
+  [22, 31],
+  [22, 39],
+  [22, 47],
+  [22, 56],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 18],
+  [23, 28],
+  [23, 43],
+  [23, 60],
+  [23, 75],
+  [23, 90],
+  [23, 105],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 28],
+  [24, 32],
+  [24, 37],
+  [24, 44],
+  [24, 54],
+  [24, 59],
+  [24, 62],
+  [25, 3],
+  [25, 12],
+  [25, 21],
+  [25, 33],
+  [25, 44],
+  [25, 56],
+  [25, 68],
+  [26, 1],
+  [26, 20],
+  [26, 40],
+  [26, 61],
+  [26, 84],
+  [26, 112],
+  [26, 137],
+  [26, 160],
+  [26, 184],
+  [26, 207],
+  [27, 1],
+  [27, 14],
+  [27, 23],
+  [27, 36],
+  [27, 45],
+  [27, 56],
+  [27, 64],
+  [27, 77],
+  [27, 89],
+  [28, 6],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 36],
+  [28, 44],
+  [28, 51],
+  [28, 60],
+  [28, 71],
+  [28, 78],
+  [28, 85],
+  [29, 7],
+  [29, 15],
+  [29, 24],
+  [29, 31],
+  [29, 39],
+  [29, 46],
+  [29, 53],
+  [29, 64],
+  [30, 6],
+  [30, 16],
+  [30, 25],
+  [30, 33],
+  [30, 42],
+  [30, 51],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [31, 29],
+  [32, 1],
+  [32, 12],
+  [32, 21],
+  [33, 1],
+  [33, 7],
+  [33, 16],
+  [33, 23],
+  [33, 31],
+  [33, 36],
+  [33, 44],
+  [33, 51],
+  [33, 55],
+  [33, 63],
+  [34, 1],
+  [34, 8],
+  [34, 15],
+  [34, 23],
+  [34, 32],
+  [34, 40],
+  [34, 49],
+  [35, 4],
+  [35, 12],
+  [35, 19],
+  [35, 31],
+  [35, 39],
+  [35, 45],
+  [36, 13],
+  [36, 28],
+  [36, 41],
+  [36, 55],
+  [36, 71],
+  [37, 1],
+  [37, 25],
+  [37, 52],
+  [37, 77],
+  [37, 103],
+  [37, 127],
+  [37, 154],
+  [38, 1],
+  [38, 17],
+  [38, 27],
+  [38, 43],
+  [38, 62],
+  [38, 84],
+  [39, 6],
+  [39, 11],
+  [39, 22],
+  [39, 32],
+  [39, 41],
+  [39, 48],
+  [39, 57],
+  [39, 68],
+  [39, 75],
+  [40, 8],
+  [40, 17],
+  [40, 26],
+  [40, 34],
+  [40, 41],
+  [40, 50],
+  [40, 59],
+  [40, 67],
+  [40, 78],
+  [41, 1],
+  [41, 12],
+  [41, 21],
+  [41, 30],
+  [41, 39],
+  [41, 47],
+  [42, 1],
+  [42, 11],
+  [42, 16],
+  [42, 23],
+  [42, 32],
+  [42, 45],
+  [42, 52],
+  [43, 11],
+  [43, 23],
+  [43, 34],
+  [43, 48],
+  [43, 61],
+  [43, 74],
+  [44, 1],
+  [44, 19],
+  [44, 40],
+  [45, 1],
+  [45, 14],
+  [45, 23],
+  [45, 33],
+  [46, 6],
+  [46, 15],
+  [46, 21],
+  [46, 29],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 30],
+  [48, 1],
+  [48, 10],
+  [48, 16],
+  [48, 24],
+  [48, 29],
+  [49, 5],
+  [49, 12],
+  [50, 1],
+  [50, 16],
+  [50, 36],
+  [51, 7],
+  [51, 31],
+  [51, 52],
+  [52, 15],
+  [52, 32],
+  [53, 1],
+  [53, 27],
+  [53, 45],
+  [54, 7],
+  [54, 28],
+  [54, 50],
+  [55, 17],
+  [55, 41],
+  [55, 68],
+  [56, 17],
+  [56, 51],
+  [56, 77],
+  [57, 4],
+  [57, 12],
+  [57, 19],
+  [57, 25],
+  [58, 1],
+  [58, 7],
+  [58, 12],
+  [58, 22],
+  [59, 4],
+  [59, 10],
+  [59, 17],
+  [60, 1],
+  [60, 6],
+  [60, 12],
+  [61, 6],
+  [62, 1],
+  [62, 9],
+  [63, 5],
+  [64, 1],
+  [64, 10],
+  [65, 1],
+  [65, 6],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 13],
+  [67, 27],
+  [68, 16],
+  [68, 43],
+  [69, 9],
+  [69, 35],
+  [70, 11],
+  [70, 40],
+  [71, 11],
+  [72, 1],
+  [72, 14],
+  [73, 1],
+  [73, 20],
+  [74, 18],
+  [74, 48],
+  [75, 20],
+  [76, 6],
+  [76, 26],
+  [77, 20],
+  [78, 1],
+  [78, 31],
+  [79, 16],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 7],
+  [83, 35],
+  [85, 1],
+  [86, 1],
+  [87, 16],
+  [89, 1],
+  [89, 24],
+  [91, 1],
+  [92, 15],
+  [95, 1],
+  [97, 1],
+  [98, 8],
+  [100, 10],
+  [103, 1],
+  [106, 1],
+  [109, 1],
+  [112, 1],
+  [115, 1]
+]
diff --git a/lib_es/json/qdata-ruku.json b/lib_es/json/qdata-ruku.json
new file mode 100644
index 0000000..0665163
--- /dev/null
+++ b/lib_es/json/qdata-ruku.json
@@ -0,0 +1,559 @@
+[
+  [],
+  [1, 1],
+  [2, 1],
+  [2, 8],
+  [2, 21],
+  [2, 30],
+  [2, 40],
+  [2, 47],
+  [2, 60],
+  [2, 62],
+  [2, 72],
+  [2, 83],
+  [2, 87],
+  [2, 97],
+  [2, 104],
+  [2, 113],
+  [2, 122],
+  [2, 130],
+  [2, 142],
+  [2, 148],
+  [2, 153],
+  [2, 164],
+  [2, 168],
+  [2, 177],
+  [2, 183],
+  [2, 189],
+  [2, 197],
+  [2, 211],
+  [2, 217],
+  [2, 222],
+  [2, 229],
+  [2, 232],
+  [2, 236],
+  [2, 243],
+  [2, 249],
+  [2, 254],
+  [2, 258],
+  [2, 261],
+  [2, 267],
+  [2, 274],
+  [2, 282],
+  [2, 284],
+  [3, 1],
+  [3, 10],
+  [3, 21],
+  [3, 31],
+  [3, 42],
+  [3, 55],
+  [3, 64],
+  [3, 72],
+  [3, 81],
+  [3, 92],
+  [3, 102],
+  [3, 110],
+  [3, 121],
+  [3, 130],
+  [3, 144],
+  [3, 149],
+  [3, 156],
+  [3, 172],
+  [3, 181],
+  [3, 190],
+  [4, 1],
+  [4, 11],
+  [4, 15],
+  [4, 23],
+  [4, 26],
+  [4, 34],
+  [4, 43],
+  [4, 51],
+  [4, 60],
+  [4, 71],
+  [4, 77],
+  [4, 88],
+  [4, 92],
+  [4, 97],
+  [4, 101],
+  [4, 105],
+  [4, 113],
+  [4, 116],
+  [4, 127],
+  [4, 135],
+  [4, 142],
+  [4, 153],
+  [4, 163],
+  [4, 172],
+  [5, 1],
+  [5, 6],
+  [5, 12],
+  [5, 20],
+  [5, 27],
+  [5, 35],
+  [5, 44],
+  [5, 51],
+  [5, 57],
+  [5, 67],
+  [5, 78],
+  [5, 87],
+  [5, 94],
+  [5, 101],
+  [5, 109],
+  [5, 116],
+  [6, 1],
+  [6, 11],
+  [6, 21],
+  [6, 31],
+  [6, 42],
+  [6, 51],
+  [6, 56],
+  [6, 61],
+  [6, 71],
+  [6, 83],
+  [6, 91],
+  [6, 95],
+  [6, 101],
+  [6, 111],
+  [6, 122],
+  [6, 130],
+  [6, 141],
+  [6, 145],
+  [6, 151],
+  [6, 155],
+  [7, 1],
+  [7, 11],
+  [7, 26],
+  [7, 32],
+  [7, 40],
+  [7, 48],
+  [7, 54],
+  [7, 59],
+  [7, 65],
+  [7, 73],
+  [7, 85],
+  [7, 94],
+  [7, 100],
+  [7, 109],
+  [7, 127],
+  [7, 130],
+  [7, 142],
+  [7, 148],
+  [7, 152],
+  [7, 158],
+  [7, 163],
+  [7, 172],
+  [7, 182],
+  [7, 189],
+  [8, 1],
+  [8, 11],
+  [8, 20],
+  [8, 29],
+  [8, 38],
+  [8, 45],
+  [8, 49],
+  [8, 59],
+  [8, 65],
+  [8, 70],
+  [9, 1],
+  [9, 7],
+  [9, 17],
+  [9, 25],
+  [9, 30],
+  [9, 38],
+  [9, 43],
+  [9, 60],
+  [9, 67],
+  [9, 73],
+  [9, 81],
+  [9, 90],
+  [9, 100],
+  [9, 111],
+  [9, 119],
+  [9, 123],
+  [10, 1],
+  [10, 11],
+  [10, 21],
+  [10, 31],
+  [10, 41],
+  [10, 54],
+  [10, 61],
+  [10, 71],
+  [10, 83],
+  [10, 93],
+  [10, 104],
+  [11, 1],
+  [11, 9],
+  [11, 25],
+  [11, 36],
+  [11, 50],
+  [11, 61],
+  [11, 69],
+  [11, 84],
+  [11, 96],
+  [11, 110],
+  [12, 1],
+  [12, 7],
+  [12, 21],
+  [12, 30],
+  [12, 36],
+  [12, 43],
+  [12, 50],
+  [12, 58],
+  [12, 69],
+  [12, 80],
+  [12, 94],
+  [12, 105],
+  [13, 1],
+  [13, 8],
+  [13, 19],
+  [13, 27],
+  [13, 32],
+  [13, 38],
+  [14, 1],
+  [14, 7],
+  [14, 13],
+  [14, 22],
+  [14, 28],
+  [14, 35],
+  [14, 42],
+  [15, 1],
+  [15, 16],
+  [15, 26],
+  [15, 45],
+  [15, 61],
+  [15, 80],
+  [16, 1],
+  [16, 10],
+  [16, 22],
+  [16, 26],
+  [16, 35],
+  [16, 41],
+  [16, 51],
+  [16, 61],
+  [16, 66],
+  [16, 71],
+  [16, 77],
+  [16, 84],
+  [16, 90],
+  [16, 101],
+  [16, 111],
+  [16, 120],
+  [17, 1],
+  [17, 11],
+  [17, 23],
+  [17, 31],
+  [17, 41],
+  [17, 53],
+  [17, 61],
+  [17, 71],
+  [17, 78],
+  [17, 85],
+  [17, 94],
+  [17, 101],
+  [18, 1],
+  [18, 13],
+  [18, 18],
+  [18, 23],
+  [18, 32],
+  [18, 45],
+  [18, 50],
+  [18, 54],
+  [18, 60],
+  [18, 71],
+  [18, 83],
+  [18, 102],
+  [19, 1],
+  [19, 16],
+  [19, 41],
+  [19, 51],
+  [19, 66],
+  [19, 83],
+  [20, 1],
+  [20, 25],
+  [20, 55],
+  [20, 77],
+  [20, 90],
+  [20, 105],
+  [20, 116],
+  [20, 129],
+  [21, 1],
+  [21, 11],
+  [21, 30],
+  [21, 42],
+  [21, 51],
+  [21, 76],
+  [21, 94],
+  [22, 1],
+  [22, 11],
+  [22, 23],
+  [22, 26],
+  [22, 34],
+  [22, 39],
+  [22, 49],
+  [22, 58],
+  [22, 65],
+  [22, 73],
+  [23, 1],
+  [23, 23],
+  [23, 33],
+  [23, 51],
+  [23, 78],
+  [23, 93],
+  [24, 1],
+  [24, 11],
+  [24, 21],
+  [24, 27],
+  [24, 35],
+  [24, 41],
+  [24, 51],
+  [24, 58],
+  [24, 62],
+  [25, 1],
+  [25, 10],
+  [25, 21],
+  [25, 35],
+  [25, 45],
+  [25, 61],
+  [26, 1],
+  [26, 10],
+  [26, 34],
+  [26, 53],
+  [26, 70],
+  [26, 105],
+  [26, 123],
+  [26, 141],
+  [26, 160],
+  [26, 176],
+  [26, 192],
+  [27, 1],
+  [27, 15],
+  [27, 32],
+  [27, 45],
+  [27, 59],
+  [27, 67],
+  [27, 83],
+  [28, 1],
+  [28, 14],
+  [28, 22],
+  [28, 29],
+  [28, 43],
+  [28, 51],
+  [28, 61],
+  [28, 76],
+  [29, 1],
+  [29, 14],
+  [29, 23],
+  [29, 31],
+  [29, 45],
+  [29, 52],
+  [29, 64],
+  [30, 1],
+  [30, 11],
+  [30, 20],
+  [30, 28],
+  [30, 41],
+  [30, 54],
+  [31, 1],
+  [31, 12],
+  [31, 20],
+  [32, 1],
+  [32, 12],
+  [32, 23],
+  [33, 1],
+  [33, 9],
+  [33, 21],
+  [33, 28],
+  [33, 35],
+  [33, 41],
+  [33, 53],
+  [33, 59],
+  [33, 69],
+  [34, 1],
+  [34, 10],
+  [34, 22],
+  [34, 31],
+  [34, 37],
+  [34, 46],
+  [35, 1],
+  [35, 8],
+  [35, 15],
+  [35, 27],
+  [35, 38],
+  [36, 1],
+  [36, 13],
+  [36, 33],
+  [36, 51],
+  [36, 68],
+  [37, 1],
+  [37, 22],
+  [37, 75],
+  [37, 114],
+  [37, 139],
+  [38, 1],
+  [38, 15],
+  [38, 27],
+  [38, 41],
+  [38, 65],
+  [39, 1],
+  [39, 10],
+  [39, 22],
+  [39, 32],
+  [39, 42],
+  [39, 53],
+  [39, 64],
+  [39, 71],
+  [40, 1],
+  [40, 10],
+  [40, 21],
+  [40, 28],
+  [40, 38],
+  [40, 51],
+  [40, 61],
+  [40, 69],
+  [40, 79],
+  [41, 1],
+  [41, 9],
+  [41, 19],
+  [41, 26],
+  [41, 33],
+  [41, 45],
+  [42, 1],
+  [42, 10],
+  [42, 20],
+  [42, 30],
+  [42, 44],
+  [43, 1],
+  [43, 16],
+  [43, 26],
+  [43, 36],
+  [43, 46],
+  [43, 57],
+  [43, 68],
+  [44, 1],
+  [44, 30],
+  [44, 43],
+  [45, 1],
+  [45, 12],
+  [45, 22],
+  [45, 27],
+  [46, 1],
+  [46, 11],
+  [46, 21],
+  [46, 27],
+  [47, 1],
+  [47, 12],
+  [47, 20],
+  [47, 29],
+  [48, 1],
+  [48, 11],
+  [48, 18],
+  [48, 27],
+  [49, 1],
+  [49, 11],
+  [50, 1],
+  [50, 16],
+  [50, 30],
+  [51, 1],
+  [51, 24],
+  [51, 47],
+  [52, 1],
+  [52, 29],
+  [53, 1],
+  [53, 26],
+  [53, 33],
+  [54, 1],
+  [54, 23],
+  [54, 41],
+  [55, 1],
+  [55, 26],
+  [55, 46],
+  [56, 1],
+  [56, 39],
+  [56, 75],
+  [57, 1],
+  [57, 11],
+  [57, 20],
+  [57, 26],
+  [58, 1],
+  [58, 7],
+  [58, 14],
+  [59, 1],
+  [59, 11],
+  [59, 18],
+  [60, 1],
+  [60, 7],
+  [61, 1],
+  [61, 10],
+  [62, 1],
+  [62, 9],
+  [63, 1],
+  [63, 9],
+  [64, 1],
+  [64, 11],
+  [65, 1],
+  [65, 8],
+  [66, 1],
+  [66, 8],
+  [67, 1],
+  [67, 15],
+  [68, 1],
+  [68, 34],
+  [69, 1],
+  [69, 38],
+  [70, 1],
+  [70, 36],
+  [71, 1],
+  [71, 21],
+  [72, 1],
+  [72, 20],
+  [73, 1],
+  [73, 20],
+  [74, 1],
+  [74, 32],
+  [75, 1],
+  [75, 31],
+  [76, 1],
+  [76, 23],
+  [77, 1],
+  [77, 41],
+  [78, 1],
+  [78, 31],
+  [79, 1],
+  [79, 27],
+  [80, 1],
+  [81, 1],
+  [82, 1],
+  [83, 1],
+  [84, 1],
+  [85, 1],
+  [86, 1],
+  [87, 1],
+  [88, 1],
+  [89, 1],
+  [90, 1],
+  [91, 1],
+  [92, 1],
+  [93, 1],
+  [94, 1],
+  [95, 1],
+  [96, 1],
+  [97, 1],
+  [98, 1],
+  [99, 1],
+  [100, 1],
+  [101, 1],
+  [102, 1],
+  [103, 1],
+  [104, 1],
+  [105, 1],
+  [106, 1],
+  [107, 1],
+  [108, 1],
+  [109, 1],
+  [110, 1],
+  [111, 1],
+  [112, 1],
+  [113, 1],
+  [114, 1]
+]
diff --git a/lib_es/json/qdata-surah.json b/lib_es/json/qdata-surah.json
new file mode 100644
index 0000000..d27a8f7
--- /dev/null
+++ b/lib_es/json/qdata-surah.json
@@ -0,0 +1,118 @@
+[
+  [],
+  [0, 7, 5, 1, "الفاتحة", true, 1],
+  [7, 286, 87, 40, "البقرة", false, 2],
+  [293, 200, 89, 20, "آل عمران", false, 50],
+  [493, 176, 92, 24, "النساء", false, 77],
+  [669, 120, 112, 16, "المائدة", false, 107],
+  [789, 165, 55, 20, "الأنعام", true, 128],
+  [954, 206, 39, 24, "الأعراف", true, 151],
+  [1160, 75, 88, 10, "الأنفال", false, 177],
+  [1235, 129, 113, 16, "التوبة", false, 187],
+  [1364, 109, 51, 11, "يونس", true, 208],
+  [1473, 123, 52, 10, "هود", true, 222],
+  [1596, 111, 53, 12, "يوسف", true, 236],
+  [1707, 43, 96, 6, "الرعد", false, 249],
+  [1750, 52, 72, 7, "ابراهيم", true, 256],
+  [1802, 99, 54, 6, "الحجر", true, 262],
+  [1901, 128, 70, 16, "النحل", true, 268],
+  [2029, 111, 50, 12, "الإسراء", true, 282],
+  [2140, 110, 69, 12, "الكهف", true, 294],
+  [2250, 98, 44, 6, "مريم", true, 305],
+  [2348, 135, 45, 8, "طه", true, 313],
+  [2483, 112, 73, 7, "الأنبياء", true, 322],
+  [2595, 78, 103, 10, "الحج", false, 332],
+  [2673, 118, 74, 6, "المؤمنون", true, 342],
+  [2791, 64, 102, 9, "النور", false, 350],
+  [2855, 77, 42, 6, "الفرقان", true, 360],
+  [2932, 227, 47, 11, "الشعراء", true, 367],
+  [3159, 93, 48, 7, "النمل", true, 377],
+  [3252, 88, 49, 8, "القصص", true, 386],
+  [3340, 69, 85, 7, "العنكبوت", true, 397],
+  [3409, 60, 84, 6, "الروم", true, 405],
+  [3469, 34, 57, 3, "لقمان", true, 411],
+  [3503, 30, 75, 3, "السجدة", true, 415],
+  [3533, 73, 90, 9, "الأحزاب", false, 418],
+  [3606, 54, 58, 6, "سبإ", true, 428],
+  [3660, 45, 43, 5, "فاطر", true, 435],
+  [3705, 83, 41, 5, "يس", true, 441],
+  [3788, 182, 56, 5, "الصافات", true, 446],
+  [3970, 88, 38, 5, "ص", true, 453],
+  [4058, 75, 59, 8, "الزمر", true, 459],
+  [4133, 85, 60, 9, "غافر", true, 468],
+  [4218, 54, 61, 6, "فصلت", true, 477],
+  [4272, 53, 62, 5, "الشورى", true, 483],
+  [4325, 89, 63, 7, "الزخرف", true, 490],
+  [4414, 59, 64, 3, "الدخان", true, 496],
+  [4473, 37, 65, 4, "الجاثية", true, 499],
+  [4510, 35, 66, 4, "الأحقاف", true, 503],
+  [4545, 38, 95, 4, "محمد", false, 507],
+  [4583, 29, 111, 4, "الفتح", false, 511],
+  [4612, 18, 106, 2, "الحجرات", false, 516],
+  [4630, 45, 34, 3, "ق", true, 518],
+  [4675, 60, 67, 3, "الذاريات", true, 521],
+  [4735, 49, 76, 2, "الطور", true, 524],
+  [4784, 62, 23, 3, "النجم", true, 526],
+  [4846, 55, 37, 3, "القمر", true, 529],
+  [4901, 78, 97, 3, "الرحمن", false, 532],
+  [4979, 96, 46, 3, "الواقعة", true, 535],
+  [5075, 29, 94, 4, "الحديد", false, 538],
+  [5104, 22, 105, 3, "المجادلة", false, 542],
+  [5126, 24, 101, 3, "الحشر", false, 546],
+  [5150, 13, 91, 2, "الممتحنة", false, 549],
+  [5163, 14, 109, 2, "الصف", false, 552],
+  [5177, 11, 110, 2, "الجمعة", false, 553],
+  [5188, 11, 104, 2, "المنافقون", false, 555],
+  [5199, 18, 108, 2, "التغابن", false, 556],
+  [5217, 12, 99, 2, "الطلاق", false, 558],
+  [5229, 12, 107, 2, "التحريم", false, 560],
+  [5241, 30, 77, 2, "الملك", true, 562],
+  [5271, 52, 2, 2, "القلم", true, 565],
+  [5323, 52, 78, 2, "الحاقة", true, 567],
+  [5375, 44, 79, 2, "المعارج", true, 569],
+  [5419, 28, 71, 2, "نوح", true, 571],
+  [5447, 28, 40, 2, "الجن", true, 572],
+  [5475, 20, 3, 2, "المزمل", true, 574],
+  [5495, 56, 4, 2, "المدثر", true, 576],
+  [5551, 40, 31, 2, "القيامة", true, 578],
+  [5591, 31, 98, 2, "الانسان", false, 579],
+  [5622, 50, 33, 2, "المرسلات", true, 581],
+  [5672, 40, 80, 2, "النبإ", true, 582],
+  [5712, 46, 81, 2, "النازعات", true, 584],
+  [5758, 42, 24, 1, "عبس", true, 585],
+  [5800, 29, 7, 1, "التكوير", true, 586],
+  [5829, 19, 82, 1, "الإنفطار", true, 587],
+  [5848, 36, 86, 1, "المطففين", true, 588],
+  [5884, 25, 83, 1, "الإنشقاق", true, 589],
+  [5909, 22, 27, 1, "البروج", true, 590],
+  [5931, 17, 36, 1, "الطارق", true, 591],
+  [5948, 19, 8, 1, "الأعلى", true, 592],
+  [5967, 26, 68, 1, "الغاشية", true, 592],
+  [5993, 30, 10, 1, "الفجر", true, 593],
+  [6023, 20, 35, 1, "البلد", true, 594],
+  [6043, 15, 26, 1, "الشمس", true, 595],
+  [6058, 21, 9, 1, "الليل", true, 596],
+  [6079, 11, 11, 1, "الضحى", true, 596],
+  [6090, 8, 12, 1, "الشرح", true, 596],
+  [6098, 8, 28, 1, "التين", true, 597],
+  [6106, 19, 1, 1, "العلق", true, 597],
+  [6125, 5, 25, 1, "القدر", true, 598],
+  [6130, 8, 100, 1, "البينة", false, 599],
+  [6138, 8, 93, 1, "الزلزلة", false, 599],
+  [6146, 11, 14, 1, "العاديات", true, 600],
+  [6157, 11, 30, 1, "القارعة", true, 600],
+  [6168, 8, 16, 1, "التكاثر", true, 600],
+  [6176, 3, 13, 1, "العصر", true, 601],
+  [6179, 9, 32, 1, "الهمزة", true, 601],
+  [6188, 5, 19, 1, "الفيل", true, 601],
+  [6193, 4, 29, 1, "قريش", true, 602],
+  [6197, 7, 17, 1, "الماعون", true, 602],
+  [6204, 3, 15, 1, "الكوثر", true, 602],
+  [6207, 6, 18, 1, "الكافرون", true, 603],
+  [6213, 3, 114, 1, "النصر", false, 603],
+  [6216, 5, 6, 1, "المسد", true, 603],
+  [6221, 4, 22, 1, "الإخلاص", true, 604],
+  [6225, 5, 20, 1, "الفلق", true, 604],
+  [6230, 6, 21, 1, "الناس", true, 604],
+  [6236, 0]
+]
diff --git a/lib_es/juzList.js b/lib_es/juzList.js
deleted file mode 100644
index 9d8212d..0000000
--- a/lib_es/juzList.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//------------------ Juz Data ---------------------
-export const 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,
-];
-//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_es/juzList.js.map b/lib_es/juzList.js.map
deleted file mode 100644
index 7fd5c63..0000000
--- a/lib_es/juzList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../src/juzList.ts"],"names":[],"mappings":"AAEA,mDAAmD;AACnD,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/types/lists/hizbList.d.ts b/lib_es/lists/hizbList.d.ts
similarity index 100%
rename from types/lists/hizbList.d.ts
rename to lib_es/lists/hizbList.d.ts
diff --git a/lib_es/lists/hizbList.js b/lib_es/lists/hizbList.js
deleted file mode 100644
index ca143f3..0000000
--- a/lib_es/lists/hizbList.js
+++ /dev/null
@@ -1,22 +0,0 @@
-//------------------ Hizb Data ---------------------
-export const 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,
-];
-//# sourceMappingURL=hizbList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/hizbList.js.map b/lib_es/lists/hizbList.js.map
deleted file mode 100644
index 847c335..0000000
--- a/lib_es/lists/hizbList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"hizbList.js","sourceRoot":"","sources":["../../src/lists/hizbList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,MAAM,CAAC,MAAM,eAAe,GAAa;IACvC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC1E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACjE,CAAA"}
\ No newline at end of file
diff --git a/lib_es/lists/hizbList.mjs b/lib_es/lists/hizbList.mjs
new file mode 100644
index 0000000..f822724
--- /dev/null
+++ b/lib_es/lists/hizbList.mjs
@@ -0,0 +1,244 @@
+export const 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
+];
diff --git a/types/lists/juzList.d.ts b/lib_es/lists/juzList.d.ts
similarity index 100%
rename from types/lists/juzList.d.ts
rename to lib_es/lists/juzList.d.ts
diff --git a/lib_es/lists/juzList.js b/lib_es/lists/juzList.js
deleted file mode 100644
index 9d8212d..0000000
--- a/lib_es/lists/juzList.js
+++ /dev/null
@@ -1,7 +0,0 @@
-//------------------ Juz Data ---------------------
-export const 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,
-];
-//# sourceMappingURL=juzList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/juzList.js.map b/lib_es/lists/juzList.js.map
deleted file mode 100644
index fe2f8f2..0000000
--- a/lib_es/lists/juzList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"juzList.js","sourceRoot":"","sources":["../../src/lists/juzList.ts"],"names":[],"mappings":"AAEA,mDAAmD;AACnD,MAAM,CAAC,MAAM,OAAO,GAAa;IAC/B,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC3E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CACvB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/lists/juzList.mjs b/lib_es/lists/juzList.mjs
new file mode 100644
index 0000000..97916df
--- /dev/null
+++ b/lib_es/lists/juzList.mjs
@@ -0,0 +1,34 @@
+export const 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
+];
diff --git a/types/lists/manzilList.d.ts b/lib_es/lists/manzilList.d.ts
similarity index 100%
rename from types/lists/manzilList.d.ts
rename to lib_es/lists/manzilList.d.ts
diff --git a/lib_es/lists/manzilList.js b/lib_es/lists/manzilList.js
deleted file mode 100644
index 83a3955..0000000
--- a/lib_es/lists/manzilList.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//------------------ Manzil Data ---------------------
-export const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/manzilList.js.map b/lib_es/lists/manzilList.js.map
deleted file mode 100644
index 13d879f..0000000
--- a/lib_es/lists/manzilList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../../src/lists/manzilList.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/lib_es/lists/manzilList.mjs b/lib_es/lists/manzilList.mjs
new file mode 100644
index 0000000..d1a86b7
--- /dev/null
+++ b/lib_es/lists/manzilList.mjs
@@ -0,0 +1,11 @@
+export const ManzilList = [
+  0,
+  1,
+  670,
+  1365,
+  2030,
+  2933,
+  3789,
+  4631,
+  6237
+];
diff --git a/types/lists/pageList.d.ts b/lib_es/lists/pageList.d.ts
similarity index 100%
rename from types/lists/pageList.d.ts
rename to lib_es/lists/pageList.d.ts
diff --git a/lib_es/lists/pageList.js b/lib_es/lists/pageList.js
deleted file mode 100644
index 1586192..0000000
--- a/lib_es/lists/pageList.js
+++ /dev/null
@@ -1,48 +0,0 @@
-export const 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,
-];
-//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/pageList.js.map b/lib_es/lists/pageList.js.map
deleted file mode 100644
index 99b928e..0000000
--- a/lib_es/lists/pageList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../../src/lists/pageList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/lib_es/lists/pageList.mjs b/lib_es/lists/pageList.mjs
new file mode 100644
index 0000000..dee0969
--- /dev/null
+++ b/lib_es/lists/pageList.mjs
@@ -0,0 +1,608 @@
+export const 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
+];
diff --git a/types/lists/rukuList.d.ts b/lib_es/lists/rukuList.d.ts
similarity index 100%
rename from types/lists/rukuList.d.ts
rename to lib_es/lists/rukuList.d.ts
diff --git a/lib_es/lists/rukuList.js b/lib_es/lists/rukuList.js
deleted file mode 100644
index 526a07a..0000000
--- a/lib_es/lists/rukuList.js
+++ /dev/null
@@ -1,45 +0,0 @@
-export const 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,
-];
-//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/rukuList.js.map b/lib_es/lists/rukuList.js.map
deleted file mode 100644
index 35f1a0e..0000000
--- a/lib_es/lists/rukuList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../../src/lists/rukuList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_es/lists/rukuList.mjs b/lib_es/lists/rukuList.mjs
new file mode 100644
index 0000000..6d14d15
--- /dev/null
+++ b/lib_es/lists/rukuList.mjs
@@ -0,0 +1,560 @@
+export const 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
+];
diff --git a/types/lists/sajdaList.d.ts b/lib_es/lists/sajdaList.d.ts
similarity index 100%
rename from types/lists/sajdaList.d.ts
rename to lib_es/lists/sajdaList.d.ts
diff --git a/lib_es/lists/sajdaList.js b/lib_es/lists/sajdaList.js
deleted file mode 100644
index 8c843b6..0000000
--- a/lib_es/lists/sajdaList.js
+++ /dev/null
@@ -1,29 +0,0 @@
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-export const SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/sajdaList.js.map b/lib_es/lists/sajdaList.js.map
deleted file mode 100644
index b5ea676..0000000
--- a/lib_es/lists/sajdaList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../../src/lists/sajdaList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/lists/sajdaList.mjs b/lib_es/lists/sajdaList.mjs
new file mode 100644
index 0000000..37bf585
--- /dev/null
+++ b/lib_es/lists/sajdaList.mjs
@@ -0,0 +1,18 @@
+export const SajdaList = [
+  // [ayaId, type]
+  [1160, "recommended"],
+  [1722, "recommended"],
+  [1951, "recommended"],
+  [2138, "recommended"],
+  [2308, "recommended"],
+  [2613, "recommended"],
+  [2672, "recommended"],
+  [2915, "recommended"],
+  [3185, "recommended"],
+  [3518, "obligatory"],
+  [3994, "recommended"],
+  [4256, "obligatory"],
+  [4846, "obligatory"],
+  [5905, "recommended"],
+  [6125, "obligatory"]
+];
diff --git a/types/lists/surahList.d.ts b/lib_es/lists/surahList.d.ts
similarity index 100%
rename from types/lists/surahList.d.ts
rename to lib_es/lists/surahList.d.ts
diff --git a/lib_es/lists/surahList.js b/lib_es/lists/surahList.js
deleted file mode 100644
index 828e937..0000000
--- a/lib_es/lists/surahList.js
+++ /dev/null
@@ -1,119 +0,0 @@
-export const SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_es/lists/surahList.js.map b/lib_es/lists/surahList.js.map
deleted file mode 100644
index 3306431..0000000
--- a/lib_es/lists/surahList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../../src/lists/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/lib_es/lists/surahList.mjs b/lib_es/lists/surahList.mjs
new file mode 100644
index 0000000..e39110c
--- /dev/null
+++ b/lib_es/lists/surahList.mjs
@@ -0,0 +1,118 @@
+export const SuraList = [
+  [-1, -1, -1, -1, "", false, -1],
+  [0, 7, 5, 1, "\u0627\u0644\u0641\u0627\u062A\u062D\u0629", true, 1],
+  [7, 286, 87, 40, "\u0627\u0644\u0628\u0642\u0631\u0629", false, 2],
+  [293, 200, 89, 20, "\u0622\u0644 \u0639\u0645\u0631\u0627\u0646", false, 50],
+  [493, 176, 92, 24, "\u0627\u0644\u0646\u0633\u0627\u0621", false, 77],
+  [669, 120, 112, 16, "\u0627\u0644\u0645\u0627\u0626\u062F\u0629", false, 107],
+  [789, 165, 55, 20, "\u0627\u0644\u0623\u0646\u0639\u0627\u0645", true, 128],
+  [954, 206, 39, 24, "\u0627\u0644\u0623\u0639\u0631\u0627\u0641", true, 151],
+  [1160, 75, 88, 10, "\u0627\u0644\u0623\u0646\u0641\u0627\u0644", false, 177],
+  [1235, 129, 113, 16, "\u0627\u0644\u062A\u0648\u0628\u0629", false, 187],
+  [1364, 109, 51, 11, "\u064A\u0648\u0646\u0633", true, 208],
+  [1473, 123, 52, 10, "\u0647\u0648\u062F", true, 222],
+  [1596, 111, 53, 12, "\u064A\u0648\u0633\u0641", true, 236],
+  [1707, 43, 96, 6, "\u0627\u0644\u0631\u0639\u062F", false, 249],
+  [1750, 52, 72, 7, "\u0627\u0628\u0631\u0627\u0647\u064A\u0645", true, 256],
+  [1802, 99, 54, 6, "\u0627\u0644\u062D\u062C\u0631", true, 262],
+  [1901, 128, 70, 16, "\u0627\u0644\u0646\u062D\u0644", true, 268],
+  [2029, 111, 50, 12, "\u0627\u0644\u0625\u0633\u0631\u0627\u0621", true, 282],
+  [2140, 110, 69, 12, "\u0627\u0644\u0643\u0647\u0641", true, 294],
+  [2250, 98, 44, 6, "\u0645\u0631\u064A\u0645", true, 305],
+  [2348, 135, 45, 8, "\u0637\u0647", true, 313],
+  [2483, 112, 73, 7, "\u0627\u0644\u0623\u0646\u0628\u064A\u0627\u0621", true, 322],
+  [2595, 78, 103, 10, "\u0627\u0644\u062D\u062C", false, 332],
+  [2673, 118, 74, 6, "\u0627\u0644\u0645\u0624\u0645\u0646\u0648\u0646", true, 342],
+  [2791, 64, 102, 9, "\u0627\u0644\u0646\u0648\u0631", false, 350],
+  [2855, 77, 42, 6, "\u0627\u0644\u0641\u0631\u0642\u0627\u0646", true, 360],
+  [2932, 227, 47, 11, "\u0627\u0644\u0634\u0639\u0631\u0627\u0621", true, 367],
+  [3159, 93, 48, 7, "\u0627\u0644\u0646\u0645\u0644", true, 377],
+  [3252, 88, 49, 8, "\u0627\u0644\u0642\u0635\u0635", true, 386],
+  [3340, 69, 85, 7, "\u0627\u0644\u0639\u0646\u0643\u0628\u0648\u062A", true, 397],
+  [3409, 60, 84, 6, "\u0627\u0644\u0631\u0648\u0645", true, 405],
+  [3469, 34, 57, 3, "\u0644\u0642\u0645\u0627\u0646", true, 411],
+  [3503, 30, 75, 3, "\u0627\u0644\u0633\u062C\u062F\u0629", true, 415],
+  [3533, 73, 90, 9, "\u0627\u0644\u0623\u062D\u0632\u0627\u0628", false, 418],
+  [3606, 54, 58, 6, "\u0633\u0628\u0625", true, 428],
+  [3660, 45, 43, 5, "\u0641\u0627\u0637\u0631", true, 435],
+  [3705, 83, 41, 5, "\u064A\u0633", true, 441],
+  [3788, 182, 56, 5, "\u0627\u0644\u0635\u0627\u0641\u0627\u062A", true, 446],
+  [3970, 88, 38, 5, "\u0635", true, 453],
+  [4058, 75, 59, 8, "\u0627\u0644\u0632\u0645\u0631", true, 459],
+  [4133, 85, 60, 9, "\u063A\u0627\u0641\u0631", true, 468],
+  [4218, 54, 61, 6, "\u0641\u0635\u0644\u062A", true, 477],
+  [4272, 53, 62, 5, "\u0627\u0644\u0634\u0648\u0631\u0649", true, 483],
+  [4325, 89, 63, 7, "\u0627\u0644\u0632\u062E\u0631\u0641", true, 490],
+  [4414, 59, 64, 3, "\u0627\u0644\u062F\u062E\u0627\u0646", true, 496],
+  [4473, 37, 65, 4, "\u0627\u0644\u062C\u0627\u062B\u064A\u0629", true, 499],
+  [4510, 35, 66, 4, "\u0627\u0644\u0623\u062D\u0642\u0627\u0641", true, 503],
+  [4545, 38, 95, 4, "\u0645\u062D\u0645\u062F", false, 507],
+  [4583, 29, 111, 4, "\u0627\u0644\u0641\u062A\u062D", false, 511],
+  [4612, 18, 106, 2, "\u0627\u0644\u062D\u062C\u0631\u0627\u062A", false, 516],
+  [4630, 45, 34, 3, "\u0642", true, 518],
+  [4675, 60, 67, 3, "\u0627\u0644\u0630\u0627\u0631\u064A\u0627\u062A", true, 521],
+  [4735, 49, 76, 2, "\u0627\u0644\u0637\u0648\u0631", true, 524],
+  [4784, 62, 23, 3, "\u0627\u0644\u0646\u062C\u0645", true, 526],
+  [4846, 55, 37, 3, "\u0627\u0644\u0642\u0645\u0631", true, 529],
+  [4901, 78, 97, 3, "\u0627\u0644\u0631\u062D\u0645\u0646", false, 532],
+  [4979, 96, 46, 3, "\u0627\u0644\u0648\u0627\u0642\u0639\u0629", true, 535],
+  [5075, 29, 94, 4, "\u0627\u0644\u062D\u062F\u064A\u062F", false, 538],
+  [5104, 22, 105, 3, "\u0627\u0644\u0645\u062C\u0627\u062F\u0644\u0629", false, 542],
+  [5126, 24, 101, 3, "\u0627\u0644\u062D\u0634\u0631", false, 546],
+  [5150, 13, 91, 2, "\u0627\u0644\u0645\u0645\u062A\u062D\u0646\u0629", false, 549],
+  [5163, 14, 109, 2, "\u0627\u0644\u0635\u0641", false, 552],
+  [5177, 11, 110, 2, "\u0627\u0644\u062C\u0645\u0639\u0629", false, 553],
+  [5188, 11, 104, 2, "\u0627\u0644\u0645\u0646\u0627\u0641\u0642\u0648\u0646", false, 555],
+  [5199, 18, 108, 2, "\u0627\u0644\u062A\u063A\u0627\u0628\u0646", false, 556],
+  [5217, 12, 99, 2, "\u0627\u0644\u0637\u0644\u0627\u0642", false, 558],
+  [5229, 12, 107, 2, "\u0627\u0644\u062A\u062D\u0631\u064A\u0645", false, 560],
+  [5241, 30, 77, 2, "\u0627\u0644\u0645\u0644\u0643", true, 562],
+  [5271, 52, 2, 2, "\u0627\u0644\u0642\u0644\u0645", true, 565],
+  [5323, 52, 78, 2, "\u0627\u0644\u062D\u0627\u0642\u0629", true, 567],
+  [5375, 44, 79, 2, "\u0627\u0644\u0645\u0639\u0627\u0631\u062C", true, 569],
+  [5419, 28, 71, 2, "\u0646\u0648\u062D", true, 571],
+  [5447, 28, 40, 2, "\u0627\u0644\u062C\u0646", true, 572],
+  [5475, 20, 3, 2, "\u0627\u0644\u0645\u0632\u0645\u0644", true, 574],
+  [5495, 56, 4, 2, "\u0627\u0644\u0645\u062F\u062B\u0631", true, 576],
+  [5551, 40, 31, 2, "\u0627\u0644\u0642\u064A\u0627\u0645\u0629", true, 578],
+  [5591, 31, 98, 2, "\u0627\u0644\u0627\u0646\u0633\u0627\u0646", false, 579],
+  [5622, 50, 33, 2, "\u0627\u0644\u0645\u0631\u0633\u0644\u0627\u062A", true, 581],
+  [5672, 40, 80, 2, "\u0627\u0644\u0646\u0628\u0625", true, 582],
+  [5712, 46, 81, 2, "\u0627\u0644\u0646\u0627\u0632\u0639\u0627\u062A", true, 584],
+  [5758, 42, 24, 1, "\u0639\u0628\u0633", true, 585],
+  [5800, 29, 7, 1, "\u0627\u0644\u062A\u0643\u0648\u064A\u0631", true, 586],
+  [5829, 19, 82, 1, "\u0627\u0644\u0625\u0646\u0641\u0637\u0627\u0631", true, 587],
+  [5848, 36, 86, 1, "\u0627\u0644\u0645\u0637\u0641\u0641\u064A\u0646", true, 588],
+  [5884, 25, 83, 1, "\u0627\u0644\u0625\u0646\u0634\u0642\u0627\u0642", true, 589],
+  [5909, 22, 27, 1, "\u0627\u0644\u0628\u0631\u0648\u062C", true, 590],
+  [5931, 17, 36, 1, "\u0627\u0644\u0637\u0627\u0631\u0642", true, 591],
+  [5948, 19, 8, 1, "\u0627\u0644\u0623\u0639\u0644\u0649", true, 592],
+  [5967, 26, 68, 1, "\u0627\u0644\u063A\u0627\u0634\u064A\u0629", true, 592],
+  [5993, 30, 10, 1, "\u0627\u0644\u0641\u062C\u0631", true, 593],
+  [6023, 20, 35, 1, "\u0627\u0644\u0628\u0644\u062F", true, 594],
+  [6043, 15, 26, 1, "\u0627\u0644\u0634\u0645\u0633", true, 595],
+  [6058, 21, 9, 1, "\u0627\u0644\u0644\u064A\u0644", true, 596],
+  [6079, 11, 11, 1, "\u0627\u0644\u0636\u062D\u0649", true, 596],
+  [6090, 8, 12, 1, "\u0627\u0644\u0634\u0631\u062D", true, 596],
+  [6098, 8, 28, 1, "\u0627\u0644\u062A\u064A\u0646", true, 597],
+  [6106, 19, 1, 1, "\u0627\u0644\u0639\u0644\u0642", true, 597],
+  [6125, 5, 25, 1, "\u0627\u0644\u0642\u062F\u0631", true, 598],
+  [6130, 8, 100, 1, "\u0627\u0644\u0628\u064A\u0646\u0629", false, 599],
+  [6138, 8, 93, 1, "\u0627\u0644\u0632\u0644\u0632\u0644\u0629", false, 599],
+  [6146, 11, 14, 1, "\u0627\u0644\u0639\u0627\u062F\u064A\u0627\u062A", true, 600],
+  [6157, 11, 30, 1, "\u0627\u0644\u0642\u0627\u0631\u0639\u0629", true, 600],
+  [6168, 8, 16, 1, "\u0627\u0644\u062A\u0643\u0627\u062B\u0631", true, 600],
+  [6176, 3, 13, 1, "\u0627\u0644\u0639\u0635\u0631", true, 601],
+  [6179, 9, 32, 1, "\u0627\u0644\u0647\u0645\u0632\u0629", true, 601],
+  [6188, 5, 19, 1, "\u0627\u0644\u0641\u064A\u0644", true, 601],
+  [6193, 4, 29, 1, "\u0642\u0631\u064A\u0634", true, 602],
+  [6197, 7, 17, 1, "\u0627\u0644\u0645\u0627\u0639\u0648\u0646", true, 602],
+  [6204, 3, 15, 1, "\u0627\u0644\u0643\u0648\u062B\u0631", true, 602],
+  [6207, 6, 18, 1, "\u0627\u0644\u0643\u0627\u0641\u0631\u0648\u0646", true, 603],
+  [6213, 3, 114, 1, "\u0627\u0644\u0646\u0635\u0631", false, 603],
+  [6216, 5, 6, 1, "\u0627\u0644\u0645\u0633\u062F", true, 603],
+  [6221, 4, 22, 1, "\u0627\u0644\u0625\u062E\u0644\u0627\u0635", true, 604],
+  [6225, 5, 20, 1, "\u0627\u0644\u0641\u0644\u0642", true, 604],
+  [6230, 6, 21, 1, "\u0627\u0644\u0646\u0627\u0633", true, 604],
+  [6236, 0, -1, -1, "", false, -1]
+];
diff --git a/lib_es/manzilList.js b/lib_es/manzilList.js
deleted file mode 100644
index 83a3955..0000000
--- a/lib_es/manzilList.js
+++ /dev/null
@@ -1,3 +0,0 @@
-//------------------ Manzil Data ---------------------
-export const ManzilList = [0, 1, 670, 1365, 2030, 2933, 3789, 4631, 6237];
-//# sourceMappingURL=manzilList.js.map
\ No newline at end of file
diff --git a/lib_es/manzilList.js.map b/lib_es/manzilList.js.map
deleted file mode 100644
index 0abf593..0000000
--- a/lib_es/manzilList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"manzilList.js","sourceRoot":"","sources":["../src/manzilList.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC"}
\ No newline at end of file
diff --git a/types/nextAyah.d.ts b/lib_es/nextAyah.d.ts
similarity index 100%
rename from types/nextAyah.d.ts
rename to lib_es/nextAyah.d.ts
diff --git a/lib_es/nextAyah.js b/lib_es/nextAyah.js
deleted file mode 100644
index 09ab628..0000000
--- a/lib_es/nextAyah.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { meta } from "./const";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-/**
- * Get the next ayah for the given surah and ayah number.
- * @param surah - The surah number.
- * @param ayah - The ayah number within the surah.
- * @returns The surah and ayah number of the next ayah.
- */
-export function nextAyah(surah, ayah) {
-    if (surah < 1 || surah > meta.numSuras)
-        throw new RangeError("Surah must be between 1 and " + meta.numSuras);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
-}
-//# sourceMappingURL=nextAyah.js.map
\ No newline at end of file
diff --git a/lib_es/nextAyah.js.map b/lib_es/nextAyah.js.map
deleted file mode 100644
index d3b0cba..0000000
--- a/lib_es/nextAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"nextAyah.js","sourceRoot":"","sources":["../src/nextAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ;QACpC,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,gBAAgB,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_es/nextAyah.mjs b/lib_es/nextAyah.mjs
new file mode 100644
index 0000000..2e38deb
--- /dev/null
+++ b/lib_es/nextAyah.mjs
@@ -0,0 +1,9 @@
+import { meta } from "./const.mjs";
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+export function nextAyah(surah, ayah) {
+  if (surah < 1 || surah > meta.numSuras)
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == meta.numAyas ? 1 : ayaid + 1);
+}
diff --git a/lib_es/pageList.js b/lib_es/pageList.js
deleted file mode 100644
index 1586192..0000000
--- a/lib_es/pageList.js
+++ /dev/null
@@ -1,48 +0,0 @@
-export const 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,
-];
-//# sourceMappingURL=pageList.js.map
\ No newline at end of file
diff --git a/lib_es/pageList.js.map b/lib_es/pageList.js.map
deleted file mode 100644
index 214ea8a..0000000
--- a/lib_es/pageList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageList.js","sourceRoot":"","sources":["../src/pageList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC3E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC3D,CAAA"}
\ No newline at end of file
diff --git a/types/pageMeta.d.ts b/lib_es/pageMeta.d.ts
similarity index 100%
rename from types/pageMeta.d.ts
rename to lib_es/pageMeta.d.ts
diff --git a/lib_es/pageMeta.js b/lib_es/pageMeta.js
deleted file mode 100644
index 789bfdc..0000000
--- a/lib_es/pageMeta.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import { meta } from "./const";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-import { PageList } from "./lists/pageList";
-/**
- * Retrieves the page metadata for the specified page number.
- *
- * @param pageNum - The page number to retrieve metadata for.
- * @returns The page metadata, including the first and last ayah IDs on the page.
- * @throws {RangeError} If the page number is out of the valid range (1 to `meta.numPages`).
- */
-export function pageMeta(pageNum) {
-    // todo rename to getPageMeta in next major version
-    if (pageNum < 1 || pageNum > meta.numPages)
-        throw new RangeError("pagenum must be between 1 and " + meta.numPages);
-    const [curPage, nextPage] = [
-        PageList[pageNum],
-        PageList[pageNum + 1],
-    ];
-    return {
-        pageNum,
-        first: findSurahByAyaid(curPage),
-        last: [...findSurahByAyaid(nextPage - 1)],
-    };
-}
-//# sourceMappingURL=pageMeta.js.map
\ No newline at end of file
diff --git a/lib_es/pageMeta.js.map b/lib_es/pageMeta.js.map
deleted file mode 100644
index 3ceea1e..0000000
--- a/lib_es/pageMeta.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"pageMeta.js","sourceRoot":"","sources":["../src/pageMeta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAI5C;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAa;IACpC,mDAAmD;IACnD,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,QAAQ;QACxC,MAAM,IAAI,UAAU,CAAC,gCAAgC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEzE,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAqB;QAC5C,QAAQ,CAAC,OAAO,CAAC;QACjB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;KACtB,CAAC;IAEF,OAAO;QACL,OAAO;QACP,KAAK,EAAE,gBAAgB,CAAC,OAAO,CAAC;QAChC,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;KAC1C,CAAC;AACJ,CAAC"}
\ No newline at end of file
diff --git a/lib_es/pageMeta.mjs b/lib_es/pageMeta.mjs
new file mode 100644
index 0000000..d50d8ad
--- /dev/null
+++ b/lib_es/pageMeta.mjs
@@ -0,0 +1,16 @@
+import { meta } from "./const.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { PageList } from "./lists/pageList.mjs";
+export function pageMeta(pageNum) {
+  if (pageNum < 1 || pageNum > meta.numPages)
+    throw new RangeError("pagenum must be between 1 and " + meta.numPages);
+  const [curPage, nextPage] = [
+    PageList[pageNum],
+    PageList[pageNum + 1]
+  ];
+  return {
+    pageNum,
+    first: findSurahByAyaid(curPage),
+    last: [...findSurahByAyaid(nextPage - 1)]
+  };
+}
diff --git a/types/prevAyah.d.ts b/lib_es/prevAyah.d.ts
similarity index 100%
rename from types/prevAyah.d.ts
rename to lib_es/prevAyah.d.ts
diff --git a/lib_es/prevAyah.js b/lib_es/prevAyah.js
deleted file mode 100644
index da91dfd..0000000
--- a/lib_es/prevAyah.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import { checkValidSurah } from "./checkValidSurah";
-import { meta } from "./const";
-import { findAyaidBySurah } from "./findAyaidBySurah";
-import { findSurahByAyaid } from "./findSurahByAyaid";
-/**
- * Get the previous ayah for the given surah and ayah number.
- * @param surah - The surah number.
- * @param ayah - The ayah number within the surah.
- * @returns The surah and ayah number of the previous ayah.
- */
-export function prevAyah(surah, ayah) {
-    checkValidSurah(surah);
-    const ayaid = findAyaidBySurah(surah, ayah);
-    return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
-}
-//# sourceMappingURL=prevAyah.js.map
\ No newline at end of file
diff --git a/lib_es/prevAyah.js.map b/lib_es/prevAyah.js.map
deleted file mode 100644
index 64f76f9..0000000
--- a/lib_es/prevAyah.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"prevAyah.js","sourceRoot":"","sources":["../src/prevAyah.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAY,EAAE,IAAY;IACjD,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvB,MAAM,KAAK,GAAW,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,gBAAgB,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC"}
\ No newline at end of file
diff --git a/lib_es/prevAyah.mjs b/lib_es/prevAyah.mjs
new file mode 100644
index 0000000..e7dddb0
--- /dev/null
+++ b/lib_es/prevAyah.mjs
@@ -0,0 +1,9 @@
+import { meta } from "./const.mjs";
+import { findAyaidBySurah } from "./findAyaidBySurah.mjs";
+import { findSurahByAyaid } from "./findSurahByAyaid.mjs";
+import { checkValidSurah } from "./validation.mjs";
+export function prevAyah(surah, ayah) {
+  checkValidSurah(surah);
+  const ayaid = findAyaidBySurah(surah, ayah);
+  return findSurahByAyaid(ayaid == 1 ? meta.numAyas : ayaid - 1);
+}
diff --git a/lib_es/rukuList.js b/lib_es/rukuList.js
deleted file mode 100644
index 526a07a..0000000
--- a/lib_es/rukuList.js
+++ /dev/null
@@ -1,45 +0,0 @@
-export const 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,
-];
-//# sourceMappingURL=rukuList.js.map
\ No newline at end of file
diff --git a/lib_es/rukuList.js.map b/lib_es/rukuList.js.map
deleted file mode 100644
index 40d5d4d..0000000
--- a/lib_es/rukuList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"rukuList.js","sourceRoot":"","sources":["../src/rukuList.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC7E,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IACzE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACzE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IAC5E,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;CAC7B,CAAA"}
\ No newline at end of file
diff --git a/lib_es/sajdaList.js b/lib_es/sajdaList.js
deleted file mode 100644
index 8c843b6..0000000
--- a/lib_es/sajdaList.js
+++ /dev/null
@@ -1,29 +0,0 @@
-//------------------ Page Data ---------------------
-// code to get starting pages for surahs
-// let res=[];
-// Page.reduce((s,c,p)=>{
-// 	while (c[0]>=s)
-// 		{res.push([s,c[0],s==c[0]?p:p-1]);s+=1;}
-// 	return s
-// },0)
-// export Page from "~/js/qdata-page.json"
-//------------------ Sajda Data ---------------------
-export const SajdaList = [
-    // [ayaId, type]
-    [1160, "recommended"],
-    [1722, "recommended"],
-    [1951, "recommended"],
-    [2138, "recommended"],
-    [2308, "recommended"],
-    [2613, "recommended"],
-    [2672, "recommended"],
-    [2915, "recommended"],
-    [3185, "recommended"],
-    [3518, "obligatory"],
-    [3994, "recommended"],
-    [4256, "obligatory"],
-    [4846, "obligatory"],
-    [5905, "recommended"],
-    [6125, "obligatory"],
-];
-//# sourceMappingURL=sajdaList.js.map
\ No newline at end of file
diff --git a/lib_es/sajdaList.js.map b/lib_es/sajdaList.js.map
deleted file mode 100644
index f494cb9..0000000
--- a/lib_es/sajdaList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"sajdaList.js","sourceRoot":"","sources":["../src/sajdaList.ts"],"names":[],"mappings":"AAEA,oDAAoD;AACpD,wCAAwC;AACxC,cAAc;AACd,yBAAyB;AACzB,mBAAmB;AACnB,6CAA6C;AAC7C,YAAY;AACZ,OAAO;AACP,0CAA0C;AAC1C,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAAY;IAChC,gBAAgB;IAChB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,YAAY,CAAC;IACpB,CAAC,IAAI,EAAE,aAAa,CAAC;IACrB,CAAC,IAAI,EAAE,YAAY,CAAC;CACrB,CAAC"}
\ No newline at end of file
diff --git a/lib_es/surahList.js b/lib_es/surahList.js
deleted file mode 100644
index 828e937..0000000
--- a/lib_es/surahList.js
+++ /dev/null
@@ -1,119 +0,0 @@
-export const SuraList = [
-    [-1, -1, -1, -1, "", false, -1],
-    [0, 7, 5, 1, "الفاتحة", true, 1],
-    [7, 286, 87, 40, "البقرة", false, 2],
-    [293, 200, 89, 20, "آل عمران", false, 50],
-    [493, 176, 92, 24, "النساء", false, 77],
-    [669, 120, 112, 16, "المائدة", false, 107],
-    [789, 165, 55, 20, "الأنعام", true, 128],
-    [954, 206, 39, 24, "الأعراف", true, 151],
-    [1160, 75, 88, 10, "الأنفال", false, 177],
-    [1235, 129, 113, 16, "التوبة", false, 187],
-    [1364, 109, 51, 11, "يونس", true, 208],
-    [1473, 123, 52, 10, "هود", true, 222],
-    [1596, 111, 53, 12, "يوسف", true, 236],
-    [1707, 43, 96, 6, "الرعد", false, 249],
-    [1750, 52, 72, 7, "ابراهيم", true, 256],
-    [1802, 99, 54, 6, "الحجر", true, 262],
-    [1901, 128, 70, 16, "النحل", true, 268],
-    [2029, 111, 50, 12, "الإسراء", true, 282],
-    [2140, 110, 69, 12, "الكهف", true, 294],
-    [2250, 98, 44, 6, "مريم", true, 305],
-    [2348, 135, 45, 8, "طه", true, 313],
-    [2483, 112, 73, 7, "الأنبياء", true, 322],
-    [2595, 78, 103, 10, "الحج", false, 332],
-    [2673, 118, 74, 6, "المؤمنون", true, 342],
-    [2791, 64, 102, 9, "النور", false, 350],
-    [2855, 77, 42, 6, "الفرقان", true, 360],
-    [2932, 227, 47, 11, "الشعراء", true, 367],
-    [3159, 93, 48, 7, "النمل", true, 377],
-    [3252, 88, 49, 8, "القصص", true, 386],
-    [3340, 69, 85, 7, "العنكبوت", true, 397],
-    [3409, 60, 84, 6, "الروم", true, 405],
-    [3469, 34, 57, 3, "لقمان", true, 411],
-    [3503, 30, 75, 3, "السجدة", true, 415],
-    [3533, 73, 90, 9, "الأحزاب", false, 418],
-    [3606, 54, 58, 6, "سبإ", true, 428],
-    [3660, 45, 43, 5, "فاطر", true, 435],
-    [3705, 83, 41, 5, "يس", true, 441],
-    [3788, 182, 56, 5, "الصافات", true, 446],
-    [3970, 88, 38, 5, "ص", true, 453],
-    [4058, 75, 59, 8, "الزمر", true, 459],
-    [4133, 85, 60, 9, "غافر", true, 468],
-    [4218, 54, 61, 6, "فصلت", true, 477],
-    [4272, 53, 62, 5, "الشورى", true, 483],
-    [4325, 89, 63, 7, "الزخرف", true, 490],
-    [4414, 59, 64, 3, "الدخان", true, 496],
-    [4473, 37, 65, 4, "الجاثية", true, 499],
-    [4510, 35, 66, 4, "الأحقاف", true, 503],
-    [4545, 38, 95, 4, "محمد", false, 507],
-    [4583, 29, 111, 4, "الفتح", false, 511],
-    [4612, 18, 106, 2, "الحجرات", false, 516],
-    [4630, 45, 34, 3, "ق", true, 518],
-    [4675, 60, 67, 3, "الذاريات", true, 521],
-    [4735, 49, 76, 2, "الطور", true, 524],
-    [4784, 62, 23, 3, "النجم", true, 526],
-    [4846, 55, 37, 3, "القمر", true, 529],
-    [4901, 78, 97, 3, "الرحمن", false, 532],
-    [4979, 96, 46, 3, "الواقعة", true, 535],
-    [5075, 29, 94, 4, "الحديد", false, 538],
-    [5104, 22, 105, 3, "المجادلة", false, 542],
-    [5126, 24, 101, 3, "الحشر", false, 546],
-    [5150, 13, 91, 2, "الممتحنة", false, 549],
-    [5163, 14, 109, 2, "الصف", false, 552],
-    [5177, 11, 110, 2, "الجمعة", false, 553],
-    [5188, 11, 104, 2, "المنافقون", false, 555],
-    [5199, 18, 108, 2, "التغابن", false, 556],
-    [5217, 12, 99, 2, "الطلاق", false, 558],
-    [5229, 12, 107, 2, "التحريم", false, 560],
-    [5241, 30, 77, 2, "الملك", true, 562],
-    [5271, 52, 2, 2, "القلم", true, 565],
-    [5323, 52, 78, 2, "الحاقة", true, 567],
-    [5375, 44, 79, 2, "المعارج", true, 569],
-    [5419, 28, 71, 2, "نوح", true, 571],
-    [5447, 28, 40, 2, "الجن", true, 572],
-    [5475, 20, 3, 2, "المزمل", true, 574],
-    [5495, 56, 4, 2, "المدثر", true, 576],
-    [5551, 40, 31, 2, "القيامة", true, 578],
-    [5591, 31, 98, 2, "الانسان", false, 579],
-    [5622, 50, 33, 2, "المرسلات", true, 581],
-    [5672, 40, 80, 2, "النبإ", true, 582],
-    [5712, 46, 81, 2, "النازعات", true, 584],
-    [5758, 42, 24, 1, "عبس", true, 585],
-    [5800, 29, 7, 1, "التكوير", true, 586],
-    [5829, 19, 82, 1, "الإنفطار", true, 587],
-    [5848, 36, 86, 1, "المطففين", true, 588],
-    [5884, 25, 83, 1, "الإنشقاق", true, 589],
-    [5909, 22, 27, 1, "البروج", true, 590],
-    [5931, 17, 36, 1, "الطارق", true, 591],
-    [5948, 19, 8, 1, "الأعلى", true, 592],
-    [5967, 26, 68, 1, "الغاشية", true, 592],
-    [5993, 30, 10, 1, "الفجر", true, 593],
-    [6023, 20, 35, 1, "البلد", true, 594],
-    [6043, 15, 26, 1, "الشمس", true, 595],
-    [6058, 21, 9, 1, "الليل", true, 596],
-    [6079, 11, 11, 1, "الضحى", true, 596],
-    [6090, 8, 12, 1, "الشرح", true, 596],
-    [6098, 8, 28, 1, "التين", true, 597],
-    [6106, 19, 1, 1, "العلق", true, 597],
-    [6125, 5, 25, 1, "القدر", true, 598],
-    [6130, 8, 100, 1, "البينة", false, 599],
-    [6138, 8, 93, 1, "الزلزلة", false, 599],
-    [6146, 11, 14, 1, "العاديات", true, 600],
-    [6157, 11, 30, 1, "القارعة", true, 600],
-    [6168, 8, 16, 1, "التكاثر", true, 600],
-    [6176, 3, 13, 1, "العصر", true, 601],
-    [6179, 9, 32, 1, "الهمزة", true, 601],
-    [6188, 5, 19, 1, "الفيل", true, 601],
-    [6193, 4, 29, 1, "قريش", true, 602],
-    [6197, 7, 17, 1, "الماعون", true, 602],
-    [6204, 3, 15, 1, "الكوثر", true, 602],
-    [6207, 6, 18, 1, "الكافرون", true, 603],
-    [6213, 3, 114, 1, "النصر", false, 603],
-    [6216, 5, 6, 1, "المسد", true, 603],
-    [6221, 4, 22, 1, "الإخلاص", true, 604],
-    [6225, 5, 20, 1, "الفلق", true, 604],
-    [6230, 6, 21, 1, "الناس", true, 604],
-    [6236, 0, -1, -1, "", false, -1],
-];
-//# sourceMappingURL=surahList.js.map
\ No newline at end of file
diff --git a/lib_es/surahList.js.map b/lib_es/surahList.js.map
deleted file mode 100644
index 6a4d93a..0000000
--- a/lib_es/surahList.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"surahList.js","sourceRoot":"","sources":["../src/surahList.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/types/types.d.ts b/lib_es/types.d.ts
similarity index 100%
rename from types/types.d.ts
rename to lib_es/types.d.ts
diff --git a/lib_es/types.js b/lib_es/types.js
deleted file mode 100644
index 718fd38..0000000
--- a/lib_es/types.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export {};
-//# sourceMappingURL=types.js.map
\ No newline at end of file
diff --git a/lib_es/types.js.map b/lib_es/types.js.map
deleted file mode 100644
index c768b79..0000000
--- a/lib_es/types.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/lib_es/types.mjs b/lib_es/types.mjs
new file mode 100644
index 0000000..e69de29
diff --git a/types/utils.d.ts b/lib_es/utils.d.ts
similarity index 100%
rename from types/utils.d.ts
rename to lib_es/utils.d.ts
diff --git a/lib_es/utils.js b/lib_es/utils.js
deleted file mode 100644
index 4bfaa7d..0000000
--- a/lib_es/utils.js
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * Performs a binary search on the given array to find the index of the specified element.
- *
- * @param ar - The array to search.
- * @param el - The element to search for.
- * @param compare_fn - An optional comparison function to use for the search. Defaults to a simple numeric comparison.
- * @returns The index of the element if found, or a negative value indicating the insertion point if not found.
- */
-export function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
-    let m = 0;
-    let n = ar.length - 1;
-    while (m <= n) {
-        const k = (n + m) >> 1;
-        const cmp = compare_fn(el, ar[k]);
-        if (cmp > 0) {
-            m = k + 1;
-        }
-        else if (cmp < 0) {
-            n = k - 1;
-        }
-        else {
-            return k;
-        }
-    }
-    return -m - 1;
-}
-//# sourceMappingURL=utils.js.map
\ No newline at end of file
diff --git a/lib_es/utils.js.map b/lib_es/utils.js.map
deleted file mode 100644
index 8312f02..0000000
--- a/lib_es/utils.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CACxB,EAAiB,EACjB,EAAU,EACV,aAA+C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC;IAE9D,IAAI,CAAC,GAAG,CAAC,CAAA;IACT,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAA;IACrB,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;QACtB,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACjC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACnB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACX,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,CAAA;QACV,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,CAAA;AACf,CAAC"}
\ No newline at end of file
diff --git a/lib_es/utils.mjs b/lib_es/utils.mjs
new file mode 100644
index 0000000..bb3be86
--- /dev/null
+++ b/lib_es/utils.mjs
@@ -0,0 +1,16 @@
+export function binarySearch(ar, el, compare_fn = (a, b) => a - b) {
+  let m = 0;
+  let n = ar.length - 1;
+  while (m <= n) {
+    const k = n + m >> 1;
+    const cmp = compare_fn(el, ar[k]);
+    if (cmp > 0) {
+      m = k + 1;
+    } else if (cmp < 0) {
+      n = k - 1;
+    } else {
+      return k;
+    }
+  }
+  return -m - 1;
+}
diff --git a/lib_es/validation.d.ts b/lib_es/validation.d.ts
new file mode 100644
index 0000000..7a8bf4a
--- /dev/null
+++ b/lib_es/validation.d.ts
@@ -0,0 +1,25 @@
+/**
+ * Checks if the given Surah (chapter) number is valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah number is valid, false otherwise.
+ */
+export declare function checkValidSurah(surah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Surah and Ayah (verse) numbers are valid.
+ *
+ * @param surah - The Surah (chapter) number to check.
+ * @param ayah - The Ayah (verse) number to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Surah and Ayah numbers are valid, false otherwise.
+ */
+export declare function checkValidSurahAyah(surah: number, ayah: number, checkOnly?: boolean): boolean;
+/**
+ * Checks if the given Ayah (verse) ID is valid.
+ *
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
+ * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
+ */
+export declare function checkValidAyahId(ayahId: number, checkOnly?: boolean): boolean;
diff --git a/lib_es/validation.mjs b/lib_es/validation.mjs
new file mode 100644
index 0000000..0744e83
--- /dev/null
+++ b/lib_es/validation.mjs
@@ -0,0 +1,32 @@
+import { meta } from "./const.mjs";
+import { getAyaCountinSura } from "./getAyaCountinSura.mjs";
+export function checkValidSurah(surah, checkOnly = false) {
+  if (typeof surah !== "number" || !Number.isInteger(surah)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (surah < 1 || surah > meta.numSuras) {
+    if (checkOnly) return false;
+    throw new RangeError("Surah must be between 1 and " + meta.numSuras);
+  }
+  return true;
+}
+export function checkValidSurahAyah(surah, ayah, checkOnly = false) {
+  if (!checkValidSurah(surah, checkOnly)) return false;
+  if (ayah < 1 || ayah > getAyaCountinSura(surah)) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah must be between 1 and " + getAyaCountinSura(surah));
+  }
+  return true;
+}
+export function checkValidAyahId(ayahId, checkOnly = false) {
+  if (typeof ayahId !== "number" || !Number.isInteger(ayahId)) {
+    if (checkOnly) return false;
+    throw new TypeError("Ayah ID must be an integer");
+  }
+  if (ayahId < 1 || ayahId > meta.numAyas) {
+    if (checkOnly) return false;
+    throw new RangeError("Ayah ID must be between 1 and " + meta.numAyas);
+  }
+  return true;
+}
diff --git a/package.json b/package.json
index b1dc1f5..9b3160a 100644
--- a/package.json
+++ b/package.json
@@ -10,11 +10,37 @@
   ],
   "version": "2.5.1",
   "license": "MIT",
-  "jsdelivr": "dist/quran-meta.js",
-  "unpkg": "dist/quran-meta.js",
-  "main": "dist/quran-meta.common.js",
-  "module": "lib_es/index.js",
-  "typings": "types/index.d.ts",
+  "jsdelivr": "dist/index.mjs",
+  "unpkg": "dist/index.mjs",
+  "main": "dist/index.cjs",
+  "module": "lib_es/index.mjs",
+  "typings": "dist/index.d.ts",
+  "type": "module",
+  "exports": {
+    "./package.json": "./package.json",
+    ".": {
+      "browser": "./dist/quran-meta.js",
+      "bun": "./dist/index.mjs",
+      "deno": "./dist/index.mjs",
+      "edge-light": "./dist/index.mjs",
+      "edge-routine": "./dist/index.mjs",
+      "netlify": "./dist/index.mjs",
+      "react-native": "./dist/index.mjs",
+      "wintercg": "./dist/index.mjs",
+      "worker": "./dist/index.mjs",
+      "workerd": "./dist/index.mjs",
+      "import": {
+        "types": "./dist/index.d.mts",
+        "default": "./dist/index.mjs"
+      },
+      "require": {
+        "types": "./dist/index.d.cts",
+        "default": "./dist/index.cjs"
+      },
+      "types": "./dist/index.d.mts",
+      "default": "./dist/index.mjs"
+    }
+  },
   "repository": {
     "type": "git",
     "url": "git+https@github.com:quran-center/quran-meta.git",
@@ -23,7 +49,6 @@
   "files": [
     "src/",
     "dist/",
-    "lib_cjs/",
     "lib_es/",
     "types/"
   ],
@@ -31,45 +56,35 @@
     "node": ">=14.0.0"
   },
   "scripts": {
-    "eslint": "eslint src/  --fix",
-    "build": "pnpm run build-universal && pnpm build-ts-es && pnpm build-ts-cjs",
-    "build-universal": "rollup -c config/rollup/dist/umd.mjs && rollup -c config/rollup/dist/es.mjs && copyfiles -f  ./src/i18n/* ./dist/json",
-    "build-ts-es": "tsc -d -p tsconfig.json --sourceMap --outDir lib_es --declarationDir types",
-    "build-ts-cjs": "tsc -d -p tsconfig.json --sourceMap --outDir lib_cjs -m CommonJS -t ES5 -d false",
-    "prepare-npm-package": "rimraf dist && rimraf lib_cjs && rimraf lib_es && rimraf dist && pnpm build",
-    "test": "vitest",
+    "dev": "vitest",
+    "lint": "eslint . --fix",
     "coverage": "vitest run --coverage",
-    "verify": "pnpm eslint && pnpm coverage",
-    "tsdoc": "typedoc --out docs/ src/",
-    "deploy": "###rollup -c config/rollup_dist.js && copyfiles dist/quran-meta.js docs/scripts",
-    "precommit": "lint-staged && jest --onlyChanged",
+    "build": "unbuild",
+    "precommit": "lint-staged && vitest --onlyChanged",
+    "prepack": "build",
+    "prepare-npm-package": "rimraf dist && rimraf lib_cjs && rimraf lib_es && rimraf docs && pnpm build&&pnpm tsdoc",
     "prerelease": "standard-version&&pnpm prepare-npm-package && pnpm test && pnpm tsdoc",
-    "release": "git push --follow-tags&&npm publish"
+    "release": "changelogen --release --prerelease --publish --publishTag rc &&git push --follow-tags&&npm publish",
+    "test": "pnpm lint && pnpm test:types && pnpm coverage",
+    "test:types": "tsc --noEmit",
+    "tsdoc": "typedoc --options ./typedoc.json",
+    "verify": "pnpm lint && pnpm coverage"
   },
   "devDependencies": {
-    "@rollup/plugin-commonjs": "^28.0.0",
-    "@rollup/plugin-node-resolve": "^15.3.0",
-    "@rollup/plugin-typescript": "^12.1.0",
-    "@types/jest": "^29.5.13",
+    "@eslint/js": "^9.12.0",
+    "@stylistic/eslint-plugin": "^2.9.0",
     "@types/node": "22.7.4",
-    "@typescript-eslint/eslint-plugin": "^8.8.0",
-    "@typescript-eslint/parser": "^8.8.0",
     "@vitest/coverage-v8": "2.1.2",
-    "copyfiles": "^2.4.1",
+    "changelogen": "^0.5.7",
     "eslint": "9.12.0",
-    "eslint-config-prettier": "^9.1.0",
-    "eslint-plugin-prettier": "^5.2.1",
-    "prettier": "3.3.3",
+    "globals": "^15.10.0",
     "rimraf": "^6.0.1",
-    "rollup": "^4.24.0",
-    "rollup-plugin-terser": "^7.0.2",
-    "source-map-support": "0.5.21",
     "standard-version": "^9.5.0",
-    "ts-node": "^10.9.2",
-    "tslib": "^2.7.0",
     "typedoc": "^0.26.8",
     "typescript": "^5.6.2",
+    "typescript-eslint": "^8.8.1",
+    "unbuild": "v3.0.0-rc.11",
     "vitest": "latest"
   },
   "packageManager": "pnpm@9.11.0+sha512.0a203ffaed5a3f63242cd064c8fb5892366c103e328079318f78062f24ea8c9d50bc6a47aa3567cabefd824d170e78fa2745ed1f16b132e16436146b7688f19b"
-}
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 079c725..7dba3bf 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -8,72 +8,45 @@ importers:
 
   .:
     devDependencies:
-      '@rollup/plugin-commonjs':
-        specifier: ^28.0.0
-        version: 28.0.0(rollup@4.24.0)
-      '@rollup/plugin-node-resolve':
-        specifier: ^15.3.0
-        version: 15.3.0(rollup@4.24.0)
-      '@rollup/plugin-typescript':
-        specifier: ^12.1.0
-        version: 12.1.0(rollup@4.24.0)(tslib@2.7.0)(typescript@5.6.2)
-      '@types/jest':
-        specifier: ^29.5.13
-        version: 29.5.13
+      '@eslint/js':
+        specifier: ^9.12.0
+        version: 9.12.0
+      '@stylistic/eslint-plugin':
+        specifier: ^2.9.0
+        version: 2.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
       '@types/node':
         specifier: 22.7.4
         version: 22.7.4
-      '@typescript-eslint/eslint-plugin':
-        specifier: ^8.8.0
-        version: 8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2)
-      '@typescript-eslint/parser':
-        specifier: ^8.8.0
-        version: 8.8.0(eslint@9.12.0)(typescript@5.6.2)
       '@vitest/coverage-v8':
         specifier: 2.1.2
         version: 2.1.2(vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1))
-      copyfiles:
-        specifier: ^2.4.1
-        version: 2.4.1
+      changelogen:
+        specifier: ^0.5.7
+        version: 0.5.7(magicast@0.3.5)
       eslint:
         specifier: 9.12.0
-        version: 9.12.0
-      eslint-config-prettier:
-        specifier: ^9.1.0
-        version: 9.1.0(eslint@9.12.0)
-      eslint-plugin-prettier:
-        specifier: ^5.2.1
-        version: 5.2.1(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.3.3)
-      prettier:
-        specifier: 3.3.3
-        version: 3.3.3
+        version: 9.12.0(jiti@2.3.3)
+      globals:
+        specifier: ^15.10.0
+        version: 15.10.0
       rimraf:
         specifier: ^6.0.1
         version: 6.0.1
-      rollup:
-        specifier: ^4.24.0
-        version: 4.24.0
-      rollup-plugin-terser:
-        specifier: ^7.0.2
-        version: 7.0.2(rollup@4.24.0)
-      source-map-support:
-        specifier: 0.5.21
-        version: 0.5.21
       standard-version:
         specifier: ^9.5.0
         version: 9.5.0
-      ts-node:
-        specifier: ^10.9.2
-        version: 10.9.2(@types/node@22.7.4)(typescript@5.6.2)
-      tslib:
-        specifier: ^2.7.0
-        version: 2.7.0
       typedoc:
         specifier: ^0.26.8
         version: 0.26.8(typescript@5.6.2)
       typescript:
         specifier: ^5.6.2
         version: 5.6.2
+      typescript-eslint:
+        specifier: ^8.8.1
+        version: 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      unbuild:
+        specifier: v3.0.0-rc.11
+        version: 3.0.0-rc.11(typescript@5.6.2)
       vitest:
         specifier: latest
         version: 2.1.2(@types/node@22.7.4)(terser@5.34.1)
@@ -88,6 +61,36 @@ packages:
     resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==}
     engines: {node: '>=6.9.0'}
 
+  '@babel/compat-data@7.25.7':
+    resolution: {integrity: sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/core@7.25.7':
+    resolution: {integrity: sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/generator@7.25.7':
+    resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-compilation-targets@7.25.7':
+    resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-module-imports@7.25.7':
+    resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helper-module-transforms@7.25.7':
+    resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==}
+    engines: {node: '>=6.9.0'}
+    peerDependencies:
+      '@babel/core': ^7.0.0
+
+  '@babel/helper-simple-access@7.25.7':
+    resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==}
+    engines: {node: '>=6.9.0'}
+
   '@babel/helper-string-parser@7.25.7':
     resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==}
     engines: {node: '>=6.9.0'}
@@ -96,6 +99,14 @@ packages:
     resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==}
     engines: {node: '>=6.9.0'}
 
+  '@babel/helper-validator-option@7.25.7':
+    resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/helpers@7.25.7':
+    resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==}
+    engines: {node: '>=6.9.0'}
+
   '@babel/highlight@7.25.7':
     resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==}
     engines: {node: '>=6.9.0'}
@@ -105,6 +116,18 @@ packages:
     engines: {node: '>=6.0.0'}
     hasBin: true
 
+  '@babel/standalone@7.25.7':
+    resolution: {integrity: sha512-7H+mK18Ew4C/pIIiZwF1eiVjUEh2Ju/BpwRZwcPeXltF/rIjHjFL0gol7PtGrHocmIq6P6ubJrylmmWQ3lGJPA==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/template@7.25.7':
+    resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==}
+    engines: {node: '>=6.9.0'}
+
+  '@babel/traverse@7.25.7':
+    resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==}
+    engines: {node: '>=6.9.0'}
+
   '@babel/types@7.25.7':
     resolution: {integrity: sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==}
     engines: {node: '>=6.9.0'}
@@ -112,148 +135,288 @@ packages:
   '@bcoe/v8-coverage@0.2.3':
     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
 
-  '@cspotcode/source-map-support@0.8.1':
-    resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
-    engines: {node: '>=12'}
-
   '@esbuild/aix-ppc64@0.21.5':
     resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==}
     engines: {node: '>=12'}
     cpu: [ppc64]
     os: [aix]
 
+  '@esbuild/aix-ppc64@0.24.0':
+    resolution: {integrity: sha512-WtKdFM7ls47zkKHFVzMz8opM7LkcsIp9amDUBIAWirg70RM71WRSjdILPsY5Uv1D42ZpUfaPILDlfactHgsRkw==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [aix]
+
   '@esbuild/android-arm64@0.21.5':
     resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [android]
 
+  '@esbuild/android-arm64@0.24.0':
+    resolution: {integrity: sha512-Vsm497xFM7tTIPYK9bNTYJyF/lsP590Qc1WxJdlB6ljCbdZKU9SY8i7+Iin4kyhV/KV5J2rOKsBQbB77Ab7L/w==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [android]
+
   '@esbuild/android-arm@0.21.5':
     resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==}
     engines: {node: '>=12'}
     cpu: [arm]
     os: [android]
 
+  '@esbuild/android-arm@0.24.0':
+    resolution: {integrity: sha512-arAtTPo76fJ/ICkXWetLCc9EwEHKaeya4vMrReVlEIUCAUncH7M4bhMQ+M9Vf+FFOZJdTNMXNBrWwW+OXWpSew==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [android]
+
   '@esbuild/android-x64@0.21.5':
     resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [android]
 
+  '@esbuild/android-x64@0.24.0':
+    resolution: {integrity: sha512-t8GrvnFkiIY7pa7mMgJd7p8p8qqYIz1NYiAoKc75Zyv73L3DZW++oYMSHPRarcotTKuSs6m3hTOa5CKHaS02TQ==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [android]
+
   '@esbuild/darwin-arm64@0.21.5':
     resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [darwin]
 
+  '@esbuild/darwin-arm64@0.24.0':
+    resolution: {integrity: sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [darwin]
+
   '@esbuild/darwin-x64@0.21.5':
     resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [darwin]
 
+  '@esbuild/darwin-x64@0.24.0':
+    resolution: {integrity: sha512-rgtz6flkVkh58od4PwTRqxbKH9cOjaXCMZgWD905JOzjFKW+7EiUObfd/Kav+A6Gyud6WZk9w+xu6QLytdi2OA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [darwin]
+
   '@esbuild/freebsd-arm64@0.21.5':
     resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [freebsd]
 
+  '@esbuild/freebsd-arm64@0.24.0':
+    resolution: {integrity: sha512-6Mtdq5nHggwfDNLAHkPlyLBpE5L6hwsuXZX8XNmHno9JuL2+bg2BX5tRkwjyfn6sKbxZTq68suOjgWqCicvPXA==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [freebsd]
+
   '@esbuild/freebsd-x64@0.21.5':
     resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [freebsd]
 
+  '@esbuild/freebsd-x64@0.24.0':
+    resolution: {integrity: sha512-D3H+xh3/zphoX8ck4S2RxKR6gHlHDXXzOf6f/9dbFt/NRBDIE33+cVa49Kil4WUjxMGW0ZIYBYtaGCa2+OsQwQ==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [freebsd]
+
   '@esbuild/linux-arm64@0.21.5':
     resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [linux]
 
+  '@esbuild/linux-arm64@0.24.0':
+    resolution: {integrity: sha512-TDijPXTOeE3eaMkRYpcy3LarIg13dS9wWHRdwYRnzlwlA370rNdZqbcp0WTyyV/k2zSxfko52+C7jU5F9Tfj1g==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [linux]
+
   '@esbuild/linux-arm@0.21.5':
     resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==}
     engines: {node: '>=12'}
     cpu: [arm]
     os: [linux]
 
+  '@esbuild/linux-arm@0.24.0':
+    resolution: {integrity: sha512-gJKIi2IjRo5G6Glxb8d3DzYXlxdEj2NlkixPsqePSZMhLudqPhtZ4BUrpIuTjJYXxvF9njql+vRjB2oaC9XpBw==}
+    engines: {node: '>=18'}
+    cpu: [arm]
+    os: [linux]
+
   '@esbuild/linux-ia32@0.21.5':
     resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==}
     engines: {node: '>=12'}
     cpu: [ia32]
     os: [linux]
 
+  '@esbuild/linux-ia32@0.24.0':
+    resolution: {integrity: sha512-K40ip1LAcA0byL05TbCQ4yJ4swvnbzHscRmUilrmP9Am7//0UjPreh4lpYzvThT2Quw66MhjG//20mrufm40mA==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [linux]
+
   '@esbuild/linux-loong64@0.21.5':
     resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==}
     engines: {node: '>=12'}
     cpu: [loong64]
     os: [linux]
 
+  '@esbuild/linux-loong64@0.24.0':
+    resolution: {integrity: sha512-0mswrYP/9ai+CU0BzBfPMZ8RVm3RGAN/lmOMgW4aFUSOQBjA31UP8Mr6DDhWSuMwj7jaWOT0p0WoZ6jeHhrD7g==}
+    engines: {node: '>=18'}
+    cpu: [loong64]
+    os: [linux]
+
   '@esbuild/linux-mips64el@0.21.5':
     resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==}
     engines: {node: '>=12'}
     cpu: [mips64el]
     os: [linux]
 
+  '@esbuild/linux-mips64el@0.24.0':
+    resolution: {integrity: sha512-hIKvXm0/3w/5+RDtCJeXqMZGkI2s4oMUGj3/jM0QzhgIASWrGO5/RlzAzm5nNh/awHE0A19h/CvHQe6FaBNrRA==}
+    engines: {node: '>=18'}
+    cpu: [mips64el]
+    os: [linux]
+
   '@esbuild/linux-ppc64@0.21.5':
     resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==}
     engines: {node: '>=12'}
     cpu: [ppc64]
     os: [linux]
 
+  '@esbuild/linux-ppc64@0.24.0':
+    resolution: {integrity: sha512-HcZh5BNq0aC52UoocJxaKORfFODWXZxtBaaZNuN3PUX3MoDsChsZqopzi5UupRhPHSEHotoiptqikjN/B77mYQ==}
+    engines: {node: '>=18'}
+    cpu: [ppc64]
+    os: [linux]
+
   '@esbuild/linux-riscv64@0.21.5':
     resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==}
     engines: {node: '>=12'}
     cpu: [riscv64]
     os: [linux]
 
+  '@esbuild/linux-riscv64@0.24.0':
+    resolution: {integrity: sha512-bEh7dMn/h3QxeR2KTy1DUszQjUrIHPZKyO6aN1X4BCnhfYhuQqedHaa5MxSQA/06j3GpiIlFGSsy1c7Gf9padw==}
+    engines: {node: '>=18'}
+    cpu: [riscv64]
+    os: [linux]
+
   '@esbuild/linux-s390x@0.21.5':
     resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==}
     engines: {node: '>=12'}
     cpu: [s390x]
     os: [linux]
 
+  '@esbuild/linux-s390x@0.24.0':
+    resolution: {integrity: sha512-ZcQ6+qRkw1UcZGPyrCiHHkmBaj9SiCD8Oqd556HldP+QlpUIe2Wgn3ehQGVoPOvZvtHm8HPx+bH20c9pvbkX3g==}
+    engines: {node: '>=18'}
+    cpu: [s390x]
+    os: [linux]
+
   '@esbuild/linux-x64@0.21.5':
     resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [linux]
 
+  '@esbuild/linux-x64@0.24.0':
+    resolution: {integrity: sha512-vbutsFqQ+foy3wSSbmjBXXIJ6PL3scghJoM8zCL142cGaZKAdCZHyf+Bpu/MmX9zT9Q0zFBVKb36Ma5Fzfa8xA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [linux]
+
   '@esbuild/netbsd-x64@0.21.5':
     resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [netbsd]
 
+  '@esbuild/netbsd-x64@0.24.0':
+    resolution: {integrity: sha512-hjQ0R/ulkO8fCYFsG0FZoH+pWgTTDreqpqY7UnQntnaKv95uP5iW3+dChxnx7C3trQQU40S+OgWhUVwCjVFLvg==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [netbsd]
+
+  '@esbuild/openbsd-arm64@0.24.0':
+    resolution: {integrity: sha512-MD9uzzkPQbYehwcN583yx3Tu5M8EIoTD+tUgKF982WYL9Pf5rKy9ltgD0eUgs8pvKnmizxjXZyLt0z6DC3rRXg==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [openbsd]
+
   '@esbuild/openbsd-x64@0.21.5':
     resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [openbsd]
 
+  '@esbuild/openbsd-x64@0.24.0':
+    resolution: {integrity: sha512-4ir0aY1NGUhIC1hdoCzr1+5b43mw99uNwVzhIq1OY3QcEwPDO3B7WNXBzaKY5Nsf1+N11i1eOfFcq+D/gOS15Q==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [openbsd]
+
   '@esbuild/sunos-x64@0.21.5':
     resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [sunos]
 
+  '@esbuild/sunos-x64@0.24.0':
+    resolution: {integrity: sha512-jVzdzsbM5xrotH+W5f1s+JtUy1UWgjU0Cf4wMvffTB8m6wP5/kx0KiaLHlbJO+dMgtxKV8RQ/JvtlFcdZ1zCPA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [sunos]
+
   '@esbuild/win32-arm64@0.21.5':
     resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [win32]
 
+  '@esbuild/win32-arm64@0.24.0':
+    resolution: {integrity: sha512-iKc8GAslzRpBytO2/aN3d2yb2z8XTVfNV0PjGlCxKo5SgWmNXx82I/Q3aG1tFfS+A2igVCY97TJ8tnYwpUWLCA==}
+    engines: {node: '>=18'}
+    cpu: [arm64]
+    os: [win32]
+
   '@esbuild/win32-ia32@0.21.5':
     resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==}
     engines: {node: '>=12'}
     cpu: [ia32]
     os: [win32]
 
+  '@esbuild/win32-ia32@0.24.0':
+    resolution: {integrity: sha512-vQW36KZolfIudCcTnaTpmLQ24Ha1RjygBo39/aLkM2kmjkWmZGEJ5Gn9l5/7tzXA42QGIoWbICfg6KLLkIw6yw==}
+    engines: {node: '>=18'}
+    cpu: [ia32]
+    os: [win32]
+
   '@esbuild/win32-x64@0.21.5':
     resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [win32]
 
+  '@esbuild/win32-x64@0.24.0':
+    resolution: {integrity: sha512-7IAFPrjSQIJrGsK6flwg7NFmwBoSTyF3rl7If0hNUFQU4ilTsEPL6GuMuU9BfIWVVGuRnuIidkSMC+c0Otu8IA==}
+    engines: {node: '>=18'}
+    cpu: [x64]
+    os: [win32]
+
   '@eslint-community/eslint-utils@4.4.0':
     resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
     engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -316,18 +479,6 @@ packages:
     resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
     engines: {node: '>=8'}
 
-  '@jest/expect-utils@29.7.0':
-    resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
-  '@jest/schemas@29.6.3':
-    resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
-  '@jest/types@29.6.3':
-    resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
   '@jridgewell/gen-mapping@0.3.5':
     resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
     engines: {node: '>=6.0.0'}
@@ -349,9 +500,6 @@ packages:
   '@jridgewell/trace-mapping@0.3.25':
     resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
 
-  '@jridgewell/trace-mapping@0.3.9':
-    resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
-
   '@nodelib/fs.scandir@2.1.5':
     resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
     engines: {node: '>= 8'}
@@ -368,9 +516,14 @@ packages:
     resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
     engines: {node: '>=14'}
 
-  '@pkgr/core@0.1.1':
-    resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==}
-    engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+  '@rollup/plugin-alias@5.1.1':
+    resolution: {integrity: sha512-PR9zDb+rOzkRb2VD+EuKB7UC41vU5DIwZ5qqCpk0KJudcWAyi8rvYOhS7+L5aZCspw1stTViLgN5v6FF1p5cgQ==}
+    engines: {node: '>=14.0.0'}
+    peerDependencies:
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+    peerDependenciesMeta:
+      rollup:
+        optional: true
 
   '@rollup/plugin-commonjs@28.0.0':
     resolution: {integrity: sha512-BJcu+a+Mpq476DMXG+hevgPSl56bkUoi88dKT8t3RyUp8kGuOh+2bU8Gs7zXDlu+fyZggnJ+iOBGrb/O1SorYg==}
@@ -381,6 +534,15 @@ packages:
       rollup:
         optional: true
 
+  '@rollup/plugin-json@6.1.0':
+    resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
+    engines: {node: '>=14.0.0'}
+    peerDependencies:
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+    peerDependenciesMeta:
+      rollup:
+        optional: true
+
   '@rollup/plugin-node-resolve@15.3.0':
     resolution: {integrity: sha512-9eO5McEICxMzJpDW9OnMYSv4Sta3hmt7VtBFz5zR9273suNOydOyq/FrGeGy+KsTRFm8w0SLVhzig2ILFT63Ag==}
     engines: {node: '>=14.0.0'}
@@ -390,18 +552,14 @@ packages:
       rollup:
         optional: true
 
-  '@rollup/plugin-typescript@12.1.0':
-    resolution: {integrity: sha512-Kzs8KGJofe7cfTRODsnG1jNGxSvU8gVoNNd7Z/QaY25AYwe2LSSUpx/kPxqF38NYkpR8de3m51r9uwJpDlz6dg==}
+  '@rollup/plugin-replace@6.0.1':
+    resolution: {integrity: sha512-2sPh9b73dj5IxuMmDAsQWVFT7mR+yoHweBaXG2W/R8vQ+IWZlnaI7BR7J6EguVQUp1hd8Z7XuozpDjEKQAAC2Q==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
-      rollup: ^2.14.0||^3.0.0||^4.0.0
-      tslib: '*'
-      typescript: '>=3.7.0'
+      rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
     peerDependenciesMeta:
       rollup:
         optional: true
-      tslib:
-        optional: true
 
   '@rollup/pluginutils@5.1.2':
     resolution: {integrity: sha512-/FIdS3PyZ39bjZlwqFnWqCOVnW7o963LtKMwQOD0NhQqw22gSr2YY1afu3FxRip4ZCZNsD5jq6Aaz6QV3D/Njw==}
@@ -507,20 +665,15 @@ packages:
   '@shikijs/vscode-textmate@9.3.0':
     resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==}
 
-  '@sinclair/typebox@0.27.8':
-    resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
-
-  '@tsconfig/node10@1.0.11':
-    resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
-
-  '@tsconfig/node12@1.0.11':
-    resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
-
-  '@tsconfig/node14@1.0.3':
-    resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
+  '@stylistic/eslint-plugin@2.9.0':
+    resolution: {integrity: sha512-OrDyFAYjBT61122MIY1a3SfEgy3YCMgt2vL4eoPmvTwDBwyQhAXurxNQznlRD/jESNfYWfID8Ej+31LljvF7Xg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: '>=8.40.0'
 
-  '@tsconfig/node16@1.0.4':
-    resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
+  '@trysound/sax@0.2.0':
+    resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
+    engines: {node: '>=10.13.0'}
 
   '@types/estree@1.0.6':
     resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
@@ -528,18 +681,6 @@ packages:
   '@types/hast@3.0.4':
     resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
 
-  '@types/istanbul-lib-coverage@2.0.6':
-    resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
-
-  '@types/istanbul-lib-report@3.0.3':
-    resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==}
-
-  '@types/istanbul-reports@3.0.4':
-    resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==}
-
-  '@types/jest@29.5.13':
-    resolution: {integrity: sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==}
-
   '@types/json-schema@7.0.15':
     resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
 
@@ -558,20 +699,11 @@ packages:
   '@types/resolve@1.20.2':
     resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
 
-  '@types/stack-utils@2.0.3':
-    resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==}
-
   '@types/unist@3.0.3':
     resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
 
-  '@types/yargs-parser@21.0.3':
-    resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
-
-  '@types/yargs@17.0.33':
-    resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==}
-
-  '@typescript-eslint/eslint-plugin@8.8.0':
-    resolution: {integrity: sha512-wORFWjU30B2WJ/aXBfOm1LX9v9nyt9D3jsSOxC3cCaTQGCW5k4jNpmjFv3U7p/7s4yvdjHzwtv2Sd2dOyhjS0A==}
+  '@typescript-eslint/eslint-plugin@8.8.1':
+    resolution: {integrity: sha512-xfvdgA8AP/vxHgtgU310+WBnLB4uJQ9XdyP17RebG26rLtDrQJV3ZYrcopX91GrHmMoH8bdSwMRh2a//TiJ1jQ==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
@@ -581,8 +713,8 @@ packages:
       typescript:
         optional: true
 
-  '@typescript-eslint/parser@8.8.0':
-    resolution: {integrity: sha512-uEFUsgR+tl8GmzmLjRqz+VrDv4eoaMqMXW7ruXfgThaAShO9JTciKpEsB+TvnfFfbg5IpujgMXVV36gOJRLtZg==}
+  '@typescript-eslint/parser@8.8.1':
+    resolution: {integrity: sha512-hQUVn2Lij2NAxVFEdvIGxT9gP1tq2yM83m+by3whWFsWC+1y8pxxxHUFE1UqDu2VsGi2i6RLcv4QvouM84U+ow==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
@@ -595,8 +727,12 @@ packages:
     resolution: {integrity: sha512-EL8eaGC6gx3jDd8GwEFEV091210U97J0jeEHrAYvIYosmEGet4wJ+g0SYmLu+oRiAwbSA5AVrt6DxLHfdd+bUg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@typescript-eslint/type-utils@8.8.0':
-    resolution: {integrity: sha512-IKwJSS7bCqyCeG4NVGxnOP6lLT9Okc3Zj8hLO96bpMkJab+10HIfJbMouLrlpyOr3yrQ1cA413YPFiGd1mW9/Q==}
+  '@typescript-eslint/scope-manager@8.8.1':
+    resolution: {integrity: sha512-X4JdU+66Mazev/J0gfXlcC/dV6JI37h+93W9BRYXrSn0hrE64IoWgVkO9MSJgEzoWkxONgaQpICWg8vAN74wlA==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
+  '@typescript-eslint/type-utils@8.8.1':
+    resolution: {integrity: sha512-qSVnpcbLP8CALORf0za+vjLYj1Wp8HSoiI8zYU5tHxRVj30702Z1Yw4cLwfNKhTPWp5+P+k1pjmD5Zd1nhxiZA==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       typescript: '*'
@@ -608,6 +744,10 @@ packages:
     resolution: {integrity: sha512-QJwc50hRCgBd/k12sTykOJbESe1RrzmX6COk8Y525C9l7oweZ+1lw9JiU56im7Amm8swlz00DRIlxMYLizr2Vw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  '@typescript-eslint/types@8.8.1':
+    resolution: {integrity: sha512-WCcTP4SDXzMd23N27u66zTKMuEevH4uzU8C9jf0RO4E04yVHgQgW+r+TeVTNnO1KIfrL8ebgVVYYMMO3+jC55Q==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
   '@typescript-eslint/typescript-estree@8.8.0':
     resolution: {integrity: sha512-ZaMJwc/0ckLz5DaAZ+pNLmHv8AMVGtfWxZe/x2JVEkD5LnmhWiQMMcYT7IY7gkdJuzJ9P14fRy28lUrlDSWYdw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -617,16 +757,35 @@ packages:
       typescript:
         optional: true
 
+  '@typescript-eslint/typescript-estree@8.8.1':
+    resolution: {integrity: sha512-A5d1R9p+X+1js4JogdNilDuuq+EHZdsH9MjTVxXOdVFfTJXunKJR/v+fNNyO4TnoOn5HqobzfRlc70NC6HTcdg==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   '@typescript-eslint/utils@8.8.0':
     resolution: {integrity: sha512-QE2MgfOTem00qrlPgyByaCHay9yb1+9BjnMFnSFkUKQfu7adBXDTnCAivURnuPPAG/qiB+kzKkZKmKfaMT0zVg==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
     peerDependencies:
       eslint: ^8.57.0 || ^9.0.0
 
+  '@typescript-eslint/utils@8.8.1':
+    resolution: {integrity: sha512-/QkNJDbV0bdL7H7d0/y0qBbV2HTtf0TIyjSDTvvmQEzeVx8jEImEbLuOA4EsvE8gIgqMitns0ifb5uQhMj8d9w==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      eslint: ^8.57.0 || ^9.0.0
+
   '@typescript-eslint/visitor-keys@8.8.0':
     resolution: {integrity: sha512-8mq51Lx6Hpmd7HnA2fcHQo3YgfX1qbccxQOgZcb4tvasu//zXRaA1j5ZRFeCw/VRAdFi4mRM9DnZw0Nu0Q2d1g==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
+  '@typescript-eslint/visitor-keys@8.8.1':
+    resolution: {integrity: sha512-0/TdC3aeRAsW7MDvYRwEc1Uwm0TIBfzjPFgg60UU2Haj5qsCs9cc3zNgY71edqE3LbWfF/WoZQd3lJoDXFQpag==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
   '@ungap/structured-clone@1.2.0':
     resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
 
@@ -678,10 +837,6 @@ packages:
     peerDependencies:
       acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
 
-  acorn-walk@8.3.4:
-    resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==}
-    engines: {node: '>=0.4.0'}
-
   acorn@8.12.1:
     resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
     engines: {node: '>=0.4.0'}
@@ -709,16 +864,13 @@ packages:
     resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
     engines: {node: '>=8'}
 
-  ansi-styles@5.2.0:
-    resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
-    engines: {node: '>=10'}
-
   ansi-styles@6.2.1:
     resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
     engines: {node: '>=12'}
 
-  arg@4.1.3:
-    resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+  anymatch@3.1.3:
+    resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+    engines: {node: '>= 8'}
 
   argparse@2.0.1:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -734,9 +886,23 @@ packages:
     resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
     engines: {node: '>=12'}
 
+  autoprefixer@10.4.20:
+    resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
+    engines: {node: ^10 || ^12 || >=14}
+    hasBin: true
+    peerDependencies:
+      postcss: ^8.1.0
+
   balanced-match@1.0.2:
     resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
 
+  binary-extensions@2.3.0:
+    resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
+    engines: {node: '>=8'}
+
+  boolbase@1.0.0:
+    resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+
   brace-expansion@1.1.11:
     resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
 
@@ -747,9 +913,26 @@ packages:
     resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
     engines: {node: '>=8'}
 
+  browserslist@4.24.0:
+    resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==}
+    engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+    hasBin: true
+
   buffer-from@1.1.2:
     resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
 
+  bundle-name@4.1.0:
+    resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==}
+    engines: {node: '>=18'}
+
+  c12@1.11.2:
+    resolution: {integrity: sha512-oBs8a4uvSDO9dm8b7OCFW7+dgtVrwmwnrVXYzLm43ta7ep2jCn/0MhoUFygIWtxhyy6+/MG7/agvpY0U1Iemew==}
+    peerDependencies:
+      magicast: ^0.3.4
+    peerDependenciesMeta:
+      magicast:
+        optional: true
+
   cac@6.7.14:
     resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
     engines: {node: '>=8'}
@@ -766,6 +949,12 @@ packages:
     resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
     engines: {node: '>=6'}
 
+  caniuse-api@3.0.0:
+    resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==}
+
+  caniuse-lite@1.0.30001667:
+    resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==}
+
   ccount@2.0.1:
     resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
 
@@ -781,6 +970,10 @@ packages:
     resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
     engines: {node: '>=10'}
 
+  changelogen@0.5.7:
+    resolution: {integrity: sha512-cTZXBcJMl3pudE40WENOakXkcVtrbBpbkmSkM20NdRiUqa4+VYRdXdEsgQ0BNQ6JBE2YymTNWtPKVF7UCTN5+g==}
+    hasBin: true
+
   character-entities-html4@2.1.0:
     resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==}
 
@@ -791,9 +984,16 @@ packages:
     resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
     engines: {node: '>= 16'}
 
-  ci-info@3.9.0:
-    resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
-    engines: {node: '>=8'}
+  chokidar@3.6.0:
+    resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+    engines: {node: '>= 8.10.0'}
+
+  chownr@2.0.0:
+    resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+    engines: {node: '>=10'}
+
+  citty@0.1.6:
+    resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==}
 
   cliui@7.0.4:
     resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==}
@@ -811,12 +1011,22 @@ packages:
   color-name@1.1.4:
     resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
 
+  colord@2.9.3:
+    resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
+
+  colorette@2.0.20:
+    resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+
   comma-separated-tokens@2.0.3:
     resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
 
   commander@2.20.3:
     resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
 
+  commander@7.2.0:
+    resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+    engines: {node: '>= 10'}
+
   commondir@1.0.1:
     resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
 
@@ -830,6 +1040,13 @@ packages:
     resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
     engines: {'0': node >= 6.0}
 
+  confbox@0.1.8:
+    resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+
+  consola@3.2.3:
+    resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
+    engines: {node: ^14.18.0 || >=16.10.0}
+
   conventional-changelog-angular@5.0.13:
     resolution: {integrity: sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==}
     engines: {node: '>=10'}
@@ -900,20 +1117,67 @@ packages:
     engines: {node: '>=10'}
     hasBin: true
 
-  copyfiles@2.4.1:
-    resolution: {integrity: sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==}
-    hasBin: true
+  convert-gitmoji@0.1.5:
+    resolution: {integrity: sha512-4wqOafJdk2tqZC++cjcbGcaJ13BZ3kwldf06PTiAQRAB76Z1KJwZNL1SaRZMi2w1FM9RYTgZ6QErS8NUl/GBmQ==}
+
+  convert-source-map@2.0.0:
+    resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
 
   core-util-is@1.0.3:
     resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
 
-  create-require@1.1.1:
-    resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
-
   cross-spawn@7.0.3:
     resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
     engines: {node: '>= 8'}
 
+  css-declaration-sorter@7.2.0:
+    resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==}
+    engines: {node: ^14 || ^16 || >=18}
+    peerDependencies:
+      postcss: ^8.0.9
+
+  css-select@5.1.0:
+    resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
+
+  css-tree@2.2.1:
+    resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==}
+    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+
+  css-tree@2.3.1:
+    resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
+
+  css-what@6.1.0:
+    resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==}
+    engines: {node: '>= 6'}
+
+  cssesc@3.0.0:
+    resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+    engines: {node: '>=4'}
+    hasBin: true
+
+  cssnano-preset-default@7.0.6:
+    resolution: {integrity: sha512-ZzrgYupYxEvdGGuqL+JKOY70s7+saoNlHSCK/OGn1vB2pQK8KSET8jvenzItcY+kA7NoWvfbb/YhlzuzNKjOhQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  cssnano-utils@5.0.0:
+    resolution: {integrity: sha512-Uij0Xdxc24L6SirFr25MlwC2rCFX6scyUmuKpzI+JQ7cyqDEwD42fJ0xfB3yLfOnRDU5LKGgjQ9FA6LYh76GWQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  cssnano@7.0.6:
+    resolution: {integrity: sha512-54woqx8SCbp8HwvNZYn68ZFAepuouZW4lTwiMVnBErM3VkO7/Sd4oTOt3Zz3bPx3kxQ36aISppyXj2Md4lg8bw==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  csso@5.0.5:
+    resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==}
+    engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'}
+
   dargs@7.0.0:
     resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==}
     engines: {node: '>=8'}
@@ -949,10 +1213,28 @@ packages:
     resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
     engines: {node: '>=0.10.0'}
 
+  default-browser-id@5.0.0:
+    resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==}
+    engines: {node: '>=18'}
+
+  default-browser@5.2.1:
+    resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==}
+    engines: {node: '>=18'}
+
+  define-lazy-prop@3.0.0:
+    resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
+    engines: {node: '>=12'}
+
+  defu@6.1.4:
+    resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==}
+
   dequal@2.0.3:
     resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
     engines: {node: '>=6'}
 
+  destr@2.0.3:
+    resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
+
   detect-indent@6.1.0:
     resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
     engines: {node: '>=8'}
@@ -964,18 +1246,27 @@ packages:
   devlop@1.1.0:
     resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
 
-  diff-sequences@29.6.3:
-    resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  dom-serializer@2.0.0:
+    resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==}
 
-  diff@4.0.2:
-    resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
-    engines: {node: '>=0.3.1'}
+  domelementtype@2.3.0:
+    resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
+
+  domhandler@5.0.3:
+    resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==}
+    engines: {node: '>= 4'}
+
+  domutils@3.1.0:
+    resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
 
   dot-prop@5.3.0:
     resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
     engines: {node: '>=8'}
 
+  dotenv@16.4.5:
+    resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
+    engines: {node: '>=12'}
+
   dotgitignore@2.1.0:
     resolution: {integrity: sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA==}
     engines: {node: '>=6'}
@@ -983,6 +1274,9 @@ packages:
   eastasianwidth@0.2.0:
     resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
 
+  electron-to-chromium@1.5.33:
+    resolution: {integrity: sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==}
+
   emoji-regex@8.0.0:
     resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
 
@@ -1001,6 +1295,11 @@ packages:
     engines: {node: '>=12'}
     hasBin: true
 
+  esbuild@0.24.0:
+    resolution: {integrity: sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==}
+    engines: {node: '>=18'}
+    hasBin: true
+
   escalade@3.2.0:
     resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
     engines: {node: '>=6'}
@@ -1009,34 +1308,10 @@ packages:
     resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
     engines: {node: '>=0.8.0'}
 
-  escape-string-regexp@2.0.0:
-    resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
-    engines: {node: '>=8'}
-
   escape-string-regexp@4.0.0:
     resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
     engines: {node: '>=10'}
 
-  eslint-config-prettier@9.1.0:
-    resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
-    hasBin: true
-    peerDependencies:
-      eslint: '>=7.0.0'
-
-  eslint-plugin-prettier@5.2.1:
-    resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==}
-    engines: {node: ^14.18.0 || >=16.0.0}
-    peerDependencies:
-      '@types/eslint': '>=8.0.0'
-      eslint: '>=8.0.0'
-      eslint-config-prettier: '*'
-      prettier: '>=3.0.0'
-    peerDependenciesMeta:
-      '@types/eslint':
-        optional: true
-      eslint-config-prettier:
-        optional: true
-
   eslint-scope@8.1.0:
     resolution: {integrity: sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1085,16 +1360,13 @@ packages:
     resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
     engines: {node: '>=0.10.0'}
 
-  expect@29.7.0:
-    resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  execa@8.0.1:
+    resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
+    engines: {node: '>=16.17'}
 
   fast-deep-equal@3.1.3:
     resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
 
-  fast-diff@1.3.0:
-    resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
-
   fast-glob@3.3.2:
     resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
     engines: {node: '>=8.6.0'}
@@ -1155,8 +1427,12 @@ packages:
     resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
     engines: {node: '>=14'}
 
-  fs.realpath@1.0.0:
-    resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+  fraction.js@4.3.7:
+    resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
+
+  fs-minipass@2.1.0:
+    resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+    engines: {node: '>= 8'}
 
   fsevents@2.3.3:
     resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
@@ -1166,6 +1442,10 @@ packages:
   function-bind@1.1.2:
     resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
 
+  gensync@1.0.0-beta.2:
+    resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+    engines: {node: '>=6.9.0'}
+
   get-caller-file@2.0.5:
     resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
     engines: {node: 6.* || 8.* || >= 10.*}
@@ -1178,6 +1458,14 @@ packages:
     engines: {node: '>=6.9.0'}
     hasBin: true
 
+  get-stream@8.0.1:
+    resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
+    engines: {node: '>=16'}
+
+  giget@1.2.3:
+    resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==}
+    hasBin: true
+
   git-raw-commits@2.0.11:
     resolution: {integrity: sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==}
     engines: {node: '>=10'}
@@ -1212,14 +1500,18 @@ packages:
     engines: {node: 20 || >=22}
     hasBin: true
 
-  glob@7.2.3:
-    resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
-    deprecated: Glob versions prior to v9 are no longer supported
+  globals@11.12.0:
+    resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+    engines: {node: '>=4'}
 
   globals@14.0.0:
     resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
     engines: {node: '>=18'}
 
+  globals@15.10.0:
+    resolution: {integrity: sha512-tqFIbz83w4Y5TCbtgjZjApohbuh7K9BxGYFm7ifwDR240tvdb7P9x+/9VvUKlmkPoiknoJtanI8UOrqxS3a7lQ==}
+    engines: {node: '>=18'}
+
   graceful-fs@4.2.11:
     resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
 
@@ -1253,6 +1545,9 @@ packages:
   hast-util-whitespace@3.0.0:
     resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==}
 
+  hookable@5.5.3:
+    resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
+
   hosted-git-info@2.8.9:
     resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
 
@@ -1266,6 +1561,10 @@ packages:
   html-void-elements@3.0.0:
     resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
 
+  human-signals@5.0.0:
+    resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
+    engines: {node: '>=16.17.0'}
+
   ignore@5.3.2:
     resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
     engines: {node: '>= 4'}
@@ -1282,10 +1581,6 @@ packages:
     resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
     engines: {node: '>=8'}
 
-  inflight@1.0.6:
-    resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
-    deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
-
   inherits@2.0.4:
     resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
 
@@ -1295,10 +1590,19 @@ packages:
   is-arrayish@0.2.1:
     resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
 
+  is-binary-path@2.1.0:
+    resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+    engines: {node: '>=8'}
+
   is-core-module@2.15.1:
     resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
     engines: {node: '>= 0.4'}
 
+  is-docker@3.0.0:
+    resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+    hasBin: true
+
   is-extglob@2.1.1:
     resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
     engines: {node: '>=0.10.0'}
@@ -1311,6 +1615,11 @@ packages:
     resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
     engines: {node: '>=0.10.0'}
 
+  is-inside-container@1.0.0:
+    resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
+    engines: {node: '>=14.16'}
+    hasBin: true
+
   is-module@1.0.0:
     resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
 
@@ -1329,12 +1638,17 @@ packages:
   is-reference@1.2.1:
     resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
 
+  is-stream@3.0.0:
+    resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
   is-text-path@1.0.1:
     resolution: {integrity: sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==}
     engines: {node: '>=0.10.0'}
 
-  isarray@0.0.1:
-    resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
+  is-wsl@3.1.0:
+    resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==}
+    engines: {node: '>=16'}
 
   isarray@1.0.0:
     resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
@@ -1365,29 +1679,13 @@ packages:
     resolution: {integrity: sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==}
     engines: {node: 20 || >=22}
 
-  jest-diff@29.7.0:
-    resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
-  jest-get-type@29.6.3:
-    resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
-  jest-matcher-utils@29.7.0:
-    resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
-  jest-message-util@29.7.0:
-    resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
-
-  jest-util@29.7.0:
-    resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  jiti@1.21.6:
+    resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
+    hasBin: true
 
-  jest-worker@26.6.2:
-    resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
-    engines: {node: '>= 10.13.0'}
+  jiti@2.3.3:
+    resolution: {integrity: sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==}
+    hasBin: true
 
   js-tokens@4.0.0:
     resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -1396,6 +1694,11 @@ packages:
     resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
     hasBin: true
 
+  jsesc@3.0.2:
+    resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
+    engines: {node: '>=6'}
+    hasBin: true
+
   json-buffer@3.0.1:
     resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
 
@@ -1414,6 +1717,11 @@ packages:
   json-stringify-safe@5.0.1:
     resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
 
+  json5@2.2.3:
+    resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+    engines: {node: '>=6'}
+    hasBin: true
+
   jsonparse@1.3.1:
     resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
     engines: {'0': node >= 0.2.0}
@@ -1429,6 +1737,10 @@ packages:
     resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
     engines: {node: '>= 0.8.0'}
 
+  lilconfig@3.1.2:
+    resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
+    engines: {node: '>=14'}
+
   lines-and-columns@1.2.4:
     resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
 
@@ -1458,9 +1770,15 @@ packages:
   lodash.ismatch@4.4.0:
     resolution: {integrity: sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==}
 
+  lodash.memoize@4.1.2:
+    resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==}
+
   lodash.merge@4.6.2:
     resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
 
+  lodash.uniq@4.5.0:
+    resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
+
   lodash@4.17.21:
     resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
 
@@ -1474,6 +1792,9 @@ packages:
     resolution: {integrity: sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==}
     engines: {node: 20 || >=22}
 
+  lru-cache@5.1.1:
+    resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+
   lru-cache@6.0.0:
     resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
     engines: {node: '>=10'}
@@ -1491,9 +1812,6 @@ packages:
     resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==}
     engines: {node: '>=10'}
 
-  make-error@1.3.6:
-    resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
-
   map-obj@1.0.1:
     resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
     engines: {node: '>=0.10.0'}
@@ -1509,6 +1827,12 @@ packages:
   mdast-util-to-hast@13.2.0:
     resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
 
+  mdn-data@2.0.28:
+    resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==}
+
+  mdn-data@2.0.30:
+    resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+
   mdurl@2.0.0:
     resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==}
 
@@ -1542,6 +1866,10 @@ packages:
     resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
     engines: {node: '>=8.6'}
 
+  mimic-fn@4.0.0:
+    resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+    engines: {node: '>=12'}
+
   min-indent@1.0.1:
     resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
     engines: {node: '>=4'}
@@ -1564,19 +1892,53 @@ packages:
   minimist@1.2.8:
     resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
 
+  minipass@3.3.6:
+    resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+    engines: {node: '>=8'}
+
+  minipass@5.0.0:
+    resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+    engines: {node: '>=8'}
+
   minipass@7.1.2:
     resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
     engines: {node: '>=16 || 14 >=14.17'}
 
+  minizlib@2.1.2:
+    resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+    engines: {node: '>= 8'}
+
   mkdirp@1.0.4:
     resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
     engines: {node: '>=10'}
     hasBin: true
 
+  mkdist@1.6.0:
+    resolution: {integrity: sha512-nD7J/mx33Lwm4Q4qoPgRBVA9JQNKgyE7fLo5vdPWVDdjz96pXglGERp/fRnGPCTB37Kykfxs5bDdXa9BWOT9nw==}
+    hasBin: true
+    peerDependencies:
+      sass: ^1.78.0
+      typescript: '>=5.5.4'
+      vue-tsc: ^1.8.27 || ^2.0.21
+    peerDependenciesMeta:
+      sass:
+        optional: true
+      typescript:
+        optional: true
+      vue-tsc:
+        optional: true
+
+  mlly@1.7.2:
+    resolution: {integrity: sha512-tN3dvVHYVz4DhSXinXIk7u9syPYaJvio118uomkovAtWBT+RdbP6Lfh/5Lvo519YMmwBafwlh20IPTXIStscpA==}
+
   modify-values@1.0.1:
     resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==}
     engines: {node: '>=0.10.0'}
 
+  mri@1.2.0:
+    resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+    engines: {node: '>=4'}
+
   ms@2.1.3:
     resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
 
@@ -1591,8 +1953,11 @@ packages:
   neo-async@2.6.2:
     resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
 
-  noms@0.0.0:
-    resolution: {integrity: sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==}
+  node-fetch-native@1.6.4:
+    resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+
+  node-releases@2.0.18:
+    resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
 
   normalize-package-data@2.5.0:
     resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
@@ -1601,12 +1966,43 @@ packages:
     resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
     engines: {node: '>=10'}
 
-  once@1.4.0:
-    resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+  normalize-path@3.0.0:
+    resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+    engines: {node: '>=0.10.0'}
+
+  normalize-range@0.1.2:
+    resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
+    engines: {node: '>=0.10.0'}
+
+  npm-run-path@5.3.0:
+    resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
+    engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+
+  nth-check@2.1.1:
+    resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+
+  nypm@0.3.12:
+    resolution: {integrity: sha512-D3pzNDWIvgA+7IORhD/IuWzEk4uXv6GsgOxiid4UU3h9oq5IqV1KtPDi63n4sZJ/xcWlr88c0QM2RgN5VbOhFA==}
+    engines: {node: ^14.16.0 || >=16.10.0}
+    hasBin: true
+
+  ofetch@1.4.0:
+    resolution: {integrity: sha512-MuHgsEhU6zGeX+EMh+8mSMrYTnsqJQQrpM00Q6QHMKNqQ0bKy0B43tk8tL1wg+CnsSTy1kg4Ir2T5Ig6rD+dfQ==}
+
+  ohash@1.1.4:
+    resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==}
+
+  onetime@6.0.0:
+    resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+    engines: {node: '>=12'}
 
   oniguruma-to-js@0.4.3:
     resolution: {integrity: sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==}
 
+  open@10.1.0:
+    resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==}
+    engines: {node: '>=18'}
+
   optionator@0.9.4:
     resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==}
     engines: {node: '>= 0.8.0'}
@@ -1670,14 +2066,14 @@ packages:
     resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
     engines: {node: '>=8'}
 
-  path-is-absolute@1.0.1:
-    resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
-    engines: {node: '>=0.10.0'}
-
   path-key@3.1.1:
     resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
     engines: {node: '>=8'}
 
+  path-key@4.0.0:
+    resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+    engines: {node: '>=12'}
+
   path-parse@1.0.7:
     resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
 
@@ -1700,6 +2096,9 @@ packages:
     resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==}
     engines: {node: '>= 14.16'}
 
+  perfect-debounce@1.0.0:
+    resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+
   picocolors@1.1.0:
     resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==}
 
@@ -1707,6 +2106,10 @@ packages:
     resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
     engines: {node: '>=8.6'}
 
+  picomatch@4.0.2:
+    resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
+    engines: {node: '>=12'}
+
   pify@2.3.0:
     resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
     engines: {node: '>=0.10.0'}
@@ -1715,6 +2118,184 @@ packages:
     resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
     engines: {node: '>=4'}
 
+  pkg-types@1.2.0:
+    resolution: {integrity: sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==}
+
+  postcss-calc@10.0.2:
+    resolution: {integrity: sha512-DT/Wwm6fCKgpYVI7ZEWuPJ4az8hiEHtCUeYjZXqU7Ou4QqYh1Df2yCQ7Ca6N7xqKPFkxN3fhf+u9KSoOCJNAjg==}
+    engines: {node: ^18.12 || ^20.9 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.38
+
+  postcss-colormin@7.0.2:
+    resolution: {integrity: sha512-YntRXNngcvEvDbEjTdRWGU606eZvB5prmHG4BF0yLmVpamXbpsRJzevyy6MZVyuecgzI2AWAlvFi8DAeCqwpvA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-convert-values@7.0.4:
+    resolution: {integrity: sha512-e2LSXPqEHVW6aoGbjV9RsSSNDO3A0rZLCBxN24zvxF25WknMPpX8Dm9UxxThyEbaytzggRuZxaGXqaOhxQ514Q==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-comments@7.0.3:
+    resolution: {integrity: sha512-q6fjd4WU4afNhWOA2WltHgCbkRhZPgQe7cXF74fuVB/ge4QbM9HEaOIzGSiMvM+g/cOsNAUGdf2JDzqA2F8iLA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-duplicates@7.0.1:
+    resolution: {integrity: sha512-oZA+v8Jkpu1ct/xbbrntHRsfLGuzoP+cpt0nJe5ED2FQF8n8bJtn7Bo28jSmBYwqgqnqkuSXJfSUEE7if4nClQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-empty@7.0.0:
+    resolution: {integrity: sha512-e+QzoReTZ8IAwhnSdp/++7gBZ/F+nBq9y6PomfwORfP7q9nBpK5AMP64kOt0bA+lShBFbBDcgpJ3X4etHg4lzA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-discard-overridden@7.0.0:
+    resolution: {integrity: sha512-GmNAzx88u3k2+sBTZrJSDauR0ccpE24omTQCVmaTTZFz1du6AasspjaUPMJ2ud4RslZpoFKyf+6MSPETLojc6w==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-merge-longhand@7.0.4:
+    resolution: {integrity: sha512-zer1KoZA54Q8RVHKOY5vMke0cCdNxMP3KBfDerjH/BYHh4nCIh+1Yy0t1pAEQF18ac/4z3OFclO+ZVH8azjR4A==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-merge-rules@7.0.4:
+    resolution: {integrity: sha512-ZsaamiMVu7uBYsIdGtKJ64PkcQt6Pcpep/uO90EpLS3dxJi6OXamIobTYcImyXGoW0Wpugh7DSD3XzxZS9JCPg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-font-values@7.0.0:
+    resolution: {integrity: sha512-2ckkZtgT0zG8SMc5aoNwtm5234eUx1GGFJKf2b1bSp8UflqaeFzR50lid4PfqVI9NtGqJ2J4Y7fwvnP/u1cQog==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-gradients@7.0.0:
+    resolution: {integrity: sha512-pdUIIdj/C93ryCHew0UgBnL2DtUS3hfFa5XtERrs4x+hmpMYGhbzo6l/Ir5de41O0GaKVpK1ZbDNXSY6GkXvtg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-params@7.0.2:
+    resolution: {integrity: sha512-nyqVLu4MFl9df32zTsdcLqCFfE/z2+f8GE1KHPxWOAmegSo6lpV2GNy5XQvrzwbLmiU7d+fYay4cwto1oNdAaQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-minify-selectors@7.0.4:
+    resolution: {integrity: sha512-JG55VADcNb4xFCf75hXkzc1rNeURhlo7ugf6JjiiKRfMsKlDzN9CXHZDyiG6x/zGchpjQS+UAgb1d4nqXqOpmA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-nested@6.2.0:
+    resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
+    engines: {node: '>=12.0'}
+    peerDependencies:
+      postcss: ^8.2.14
+
+  postcss-normalize-charset@7.0.0:
+    resolution: {integrity: sha512-ABisNUXMeZeDNzCQxPxBCkXexvBrUHV+p7/BXOY+ulxkcjUZO0cp8ekGBwvIh2LbCwnWbyMPNJVtBSdyhM2zYQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-display-values@7.0.0:
+    resolution: {integrity: sha512-lnFZzNPeDf5uGMPYgGOw7v0BfB45+irSRz9gHQStdkkhiM0gTfvWkWB5BMxpn0OqgOQuZG/mRlZyJxp0EImr2Q==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-positions@7.0.0:
+    resolution: {integrity: sha512-I0yt8wX529UKIGs2y/9Ybs2CelSvItfmvg/DBIjTnoUSrPxSV7Z0yZ8ShSVtKNaV/wAY+m7bgtyVQLhB00A1NQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-repeat-style@7.0.0:
+    resolution: {integrity: sha512-o3uSGYH+2q30ieM3ppu9GTjSXIzOrRdCUn8UOMGNw7Af61bmurHTWI87hRybrP6xDHvOe5WlAj3XzN6vEO8jLw==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-string@7.0.0:
+    resolution: {integrity: sha512-w/qzL212DFVOpMy3UGyxrND+Kb0fvCiBBujiaONIihq7VvtC7bswjWgKQU/w4VcRyDD8gpfqUiBQ4DUOwEJ6Qg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-timing-functions@7.0.0:
+    resolution: {integrity: sha512-tNgw3YV0LYoRwg43N3lTe3AEWZ66W7Dh7lVEpJbHoKOuHc1sLrzMLMFjP8SNULHaykzsonUEDbKedv8C+7ej6g==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-unicode@7.0.2:
+    resolution: {integrity: sha512-ztisabK5C/+ZWBdYC+Y9JCkp3M9qBv/XFvDtSw0d/XwfT3UaKeW/YTm/MD/QrPNxuecia46vkfEhewjwcYFjkg==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-url@7.0.0:
+    resolution: {integrity: sha512-+d7+PpE+jyPX1hDQZYG+NaFD+Nd2ris6r8fPTBAjE8z/U41n/bib3vze8x7rKs5H1uEw5ppe9IojewouHk0klQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-normalize-whitespace@7.0.0:
+    resolution: {integrity: sha512-37/toN4wwZErqohedXYqWgvcHUGlT8O/m2jVkAfAe9Bd4MzRqlBmXrJRePH0e9Wgnz2X7KymTgTOaaFizQe3AQ==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-ordered-values@7.0.1:
+    resolution: {integrity: sha512-irWScWRL6nRzYmBOXReIKch75RRhNS86UPUAxXdmW/l0FcAsg0lvAXQCby/1lymxn/o0gVa6Rv/0f03eJOwHxw==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-reduce-initial@7.0.2:
+    resolution: {integrity: sha512-pOnu9zqQww7dEKf62Nuju6JgsW2V0KRNBHxeKohU+JkHd/GAH5uvoObqFLqkeB2n20mr6yrlWDvo5UBU5GnkfA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-reduce-transforms@7.0.0:
+    resolution: {integrity: sha512-pnt1HKKZ07/idH8cpATX/ujMbtOGhUfE+m8gbqwJE05aTaNw8gbo34a2e3if0xc0dlu75sUOiqvwCGY3fzOHew==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-selector-parser@6.1.2:
+    resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
+    engines: {node: '>=4'}
+
+  postcss-svgo@7.0.1:
+    resolution: {integrity: sha512-0WBUlSL4lhD9rA5k1e5D8EN5wCEyZD6HJk0jIvRxl+FDVOMlJ7DePHYWGGVc5QRqrJ3/06FTXM0bxjmJpmTPSA==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >= 18}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-unique-selectors@7.0.3:
+    resolution: {integrity: sha512-J+58u5Ic5T1QjP/LDV9g3Cx4CNOgB5vz+kM6+OxHHhFACdcDeKhBXjQmB7fnIZM12YSTvsL0Opwco83DmacW2g==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
+  postcss-value-parser@4.2.0:
+    resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
   postcss@8.4.47:
     resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==}
     engines: {node: ^10 || ^12 || >=14}
@@ -1723,18 +2304,9 @@ packages:
     resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
     engines: {node: '>= 0.8.0'}
 
-  prettier-linter-helpers@1.0.0:
-    resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
-    engines: {node: '>=6.0.0'}
-
-  prettier@3.3.3:
-    resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
-    engines: {node: '>=14'}
-    hasBin: true
-
-  pretty-format@29.7.0:
-    resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==}
-    engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+  pretty-bytes@6.1.1:
+    resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==}
+    engines: {node: ^14.13.1 || >=16.0.0}
 
   process-nextick-args@2.0.1:
     resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -1765,11 +2337,8 @@ packages:
     resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
     engines: {node: '>=8'}
 
-  randombytes@2.1.0:
-    resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
-
-  react-is@18.3.1:
-    resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
+  rc9@2.1.2:
+    resolution: {integrity: sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==}
 
   read-pkg-up@3.0.0:
     resolution: {integrity: sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==}
@@ -1787,9 +2356,6 @@ packages:
     resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
     engines: {node: '>=8'}
 
-  readable-stream@1.0.34:
-    resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==}
-
   readable-stream@2.3.8:
     resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
 
@@ -1797,6 +2363,10 @@ packages:
     resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
     engines: {node: '>= 6'}
 
+  readdirp@3.6.0:
+    resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+    engines: {node: '>=8.10.0'}
+
   redent@3.0.0:
     resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
     engines: {node: '>=8'}
@@ -1825,17 +2395,22 @@ packages:
     engines: {node: 20 || >=22}
     hasBin: true
 
-  rollup-plugin-terser@7.0.2:
-    resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==}
-    deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser
+  rollup-plugin-dts@6.1.1:
+    resolution: {integrity: sha512-aSHRcJ6KG2IHIioYlvAOcEq6U99sVtqDDKVhnwt70rW6tsz3tv5OSjEiWcgzfsHdLyGXZ/3b/7b/+Za3Y6r1XA==}
+    engines: {node: '>=16'}
     peerDependencies:
-      rollup: ^2.0.0
+      rollup: ^3.29.4 || ^4
+      typescript: ^4.5 || ^5.0
 
   rollup@4.24.0:
     resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==}
     engines: {node: '>=18.0.0', npm: '>=8.0.0'}
     hasBin: true
 
+  run-applescript@7.0.0:
+    resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==}
+    engines: {node: '>=18'}
+
   run-parallel@1.2.0:
     resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
 
@@ -1845,6 +2420,9 @@ packages:
   safe-buffer@5.2.1:
     resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
 
+  scule@1.3.0:
+    resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
+
   semver@5.7.2:
     resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
     hasBin: true
@@ -1858,9 +2436,6 @@ packages:
     engines: {node: '>=10'}
     hasBin: true
 
-  serialize-javascript@4.0.0:
-    resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==}
-
   shebang-command@2.0.0:
     resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
     engines: {node: '>=8'}
@@ -1879,10 +2454,6 @@ packages:
     resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
     engines: {node: '>=14'}
 
-  slash@3.0.0:
-    resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
-    engines: {node: '>=8'}
-
   source-map-js@1.2.1:
     resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
     engines: {node: '>=0.10.0'}
@@ -1915,10 +2486,6 @@ packages:
   split@1.0.1:
     resolution: {integrity: sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==}
 
-  stack-utils@2.0.6:
-    resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
-    engines: {node: '>=10'}
-
   stackback@0.0.2:
     resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==}
 
@@ -1938,9 +2505,6 @@ packages:
     resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
     engines: {node: '>=12'}
 
-  string_decoder@0.10.31:
-    resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
-
   string_decoder@1.1.1:
     resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
 
@@ -1966,6 +2530,10 @@ packages:
     resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
     engines: {node: '>=4'}
 
+  strip-final-newline@3.0.0:
+    resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+    engines: {node: '>=12'}
+
   strip-indent@3.0.0:
     resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
     engines: {node: '>=8'}
@@ -1974,6 +2542,12 @@ packages:
     resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
     engines: {node: '>=8'}
 
+  stylehacks@7.0.4:
+    resolution: {integrity: sha512-i4zfNrGMt9SB4xRK9L83rlsFCgdGANfeDAYacO1pkqcE7cRHPdWHwnKZVz7WY17Veq/FvyYsRAU++Ga+qDFIww==}
+    engines: {node: ^18.12.0 || ^20.9.0 || >=22.0}
+    peerDependencies:
+      postcss: ^8.4.31
+
   supports-color@5.5.0:
     resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
     engines: {node: '>=4'}
@@ -1986,9 +2560,14 @@ packages:
     resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
     engines: {node: '>= 0.4'}
 
-  synckit@0.9.1:
-    resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==}
-    engines: {node: ^14.18.0 || >=16.0.0}
+  svgo@3.3.2:
+    resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
+    engines: {node: '>=14.0.0'}
+    hasBin: true
+
+  tar@6.2.1:
+    resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==}
+    engines: {node: '>=10'}
 
   terser@5.34.1:
     resolution: {integrity: sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==}
@@ -2021,6 +2600,10 @@ packages:
   tinyexec@0.3.0:
     resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==}
 
+  tinyglobby@0.2.9:
+    resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==}
+    engines: {node: '>=12.0.0'}
+
   tinypool@1.0.1:
     resolution: {integrity: sha512-URZYihUbRPcGv95En+sz6MfghfIc2OJ1sv/RmhWZLouPY0/8Vo80viwPvg3dlaS9fuq7fQMEfgRRK7BBZThBEA==}
     engines: {node: ^18.0.0 || >=20.0.0}
@@ -2054,23 +2637,6 @@ packages:
     peerDependencies:
       typescript: '>=4.2.0'
 
-  ts-node@10.9.2:
-    resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
-    hasBin: true
-    peerDependencies:
-      '@swc/core': '>=1.2.50'
-      '@swc/wasm': '>=1.2.50'
-      '@types/node': '*'
-      typescript: '>=2.7'
-    peerDependenciesMeta:
-      '@swc/core':
-        optional: true
-      '@swc/wasm':
-        optional: true
-
-  tslib@2.7.0:
-    resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
-
   type-check@0.4.0:
     resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
     engines: {node: '>= 0.8.0'}
@@ -2097,6 +2663,15 @@ packages:
     peerDependencies:
       typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x
 
+  typescript-eslint@8.8.1:
+    resolution: {integrity: sha512-R0dsXFt6t4SAFjUSKFjMh4pXDtq04SsFKCVGDP3ZOzNP7itF0jBcZYU4fMsZr4y7O7V7Nc751dDeESbe4PbQMQ==}
+    engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+    peerDependencies:
+      typescript: '*'
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   typescript@5.6.2:
     resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
     engines: {node: '>=14.17'}
@@ -2105,11 +2680,23 @@ packages:
   uc.micro@2.1.0:
     resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==}
 
+  ufo@1.5.4:
+    resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==}
+
   uglify-js@3.19.3:
     resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
     engines: {node: '>=0.8.0'}
     hasBin: true
 
+  unbuild@3.0.0-rc.11:
+    resolution: {integrity: sha512-faBmtdo73jSSoghmf7CuscmAMOr34eri9j674pQP+KKjxvwTKaRol6f2DVhKhNCfceeHdfm2BfDwRxo2L/w0fg==}
+    hasBin: true
+    peerDependencies:
+      typescript: ^5.6.2
+    peerDependenciesMeta:
+      typescript:
+        optional: true
+
   undici-types@6.19.8:
     resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
 
@@ -2128,9 +2715,15 @@ packages:
   unist-util-visit@5.0.0:
     resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==}
 
-  untildify@4.0.0:
-    resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
-    engines: {node: '>=8'}
+  untyped@1.5.1:
+    resolution: {integrity: sha512-reBOnkJBFfBZ8pCKaeHgfZLcehXtM6UTxc+vqs1JvCps0c4amLNp3fhdGBZwYp+VLyoY9n3X5KOP7lCyWBUX9A==}
+    hasBin: true
+
+  update-browserslist-db@1.1.1:
+    resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==}
+    hasBin: true
+    peerDependencies:
+      browserslist: '>= 4.21.0'
 
   uri-js@4.4.1:
     resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
@@ -2138,9 +2731,6 @@ packages:
   util-deprecate@1.0.2:
     resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
 
-  v8-compile-cache-lib@3.0.1:
-    resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
-
   validate-npm-package-license@3.0.4:
     resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
 
@@ -2236,9 +2826,6 @@ packages:
     resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
     engines: {node: '>=12'}
 
-  wrappy@1.0.2:
-    resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-
   xtend@4.0.2:
     resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
     engines: {node: '>=0.4'}
@@ -2247,6 +2834,9 @@ packages:
     resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
     engines: {node: '>=10'}
 
+  yallist@3.1.1:
+    resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+
   yallist@4.0.0:
     resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
 
@@ -2263,10 +2853,6 @@ packages:
     resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==}
     engines: {node: '>=10'}
 
-  yn@3.1.1:
-    resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
-    engines: {node: '>=6'}
-
   yocto-queue@0.1.0:
     resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
     engines: {node: '>=10'}
@@ -2286,10 +2872,78 @@ snapshots:
       '@babel/highlight': 7.25.7
       picocolors: 1.1.0
 
+  '@babel/compat-data@7.25.7': {}
+
+  '@babel/core@7.25.7':
+    dependencies:
+      '@ampproject/remapping': 2.3.0
+      '@babel/code-frame': 7.25.7
+      '@babel/generator': 7.25.7
+      '@babel/helper-compilation-targets': 7.25.7
+      '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.7)
+      '@babel/helpers': 7.25.7
+      '@babel/parser': 7.25.7
+      '@babel/template': 7.25.7
+      '@babel/traverse': 7.25.7
+      '@babel/types': 7.25.7
+      convert-source-map: 2.0.0
+      debug: 4.3.7
+      gensync: 1.0.0-beta.2
+      json5: 2.2.3
+      semver: 6.3.1
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/generator@7.25.7':
+    dependencies:
+      '@babel/types': 7.25.7
+      '@jridgewell/gen-mapping': 0.3.5
+      '@jridgewell/trace-mapping': 0.3.25
+      jsesc: 3.0.2
+
+  '@babel/helper-compilation-targets@7.25.7':
+    dependencies:
+      '@babel/compat-data': 7.25.7
+      '@babel/helper-validator-option': 7.25.7
+      browserslist: 4.24.0
+      lru-cache: 5.1.1
+      semver: 6.3.1
+
+  '@babel/helper-module-imports@7.25.7':
+    dependencies:
+      '@babel/traverse': 7.25.7
+      '@babel/types': 7.25.7
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.7)':
+    dependencies:
+      '@babel/core': 7.25.7
+      '@babel/helper-module-imports': 7.25.7
+      '@babel/helper-simple-access': 7.25.7
+      '@babel/helper-validator-identifier': 7.25.7
+      '@babel/traverse': 7.25.7
+    transitivePeerDependencies:
+      - supports-color
+
+  '@babel/helper-simple-access@7.25.7':
+    dependencies:
+      '@babel/traverse': 7.25.7
+      '@babel/types': 7.25.7
+    transitivePeerDependencies:
+      - supports-color
+
   '@babel/helper-string-parser@7.25.7': {}
 
   '@babel/helper-validator-identifier@7.25.7': {}
 
+  '@babel/helper-validator-option@7.25.7': {}
+
+  '@babel/helpers@7.25.7':
+    dependencies:
+      '@babel/template': 7.25.7
+      '@babel/types': 7.25.7
+
   '@babel/highlight@7.25.7':
     dependencies:
       '@babel/helper-validator-identifier': 7.25.7
@@ -2301,6 +2955,26 @@ snapshots:
     dependencies:
       '@babel/types': 7.25.7
 
+  '@babel/standalone@7.25.7': {}
+
+  '@babel/template@7.25.7':
+    dependencies:
+      '@babel/code-frame': 7.25.7
+      '@babel/parser': 7.25.7
+      '@babel/types': 7.25.7
+
+  '@babel/traverse@7.25.7':
+    dependencies:
+      '@babel/code-frame': 7.25.7
+      '@babel/generator': 7.25.7
+      '@babel/parser': 7.25.7
+      '@babel/template': 7.25.7
+      '@babel/types': 7.25.7
+      debug: 4.3.7
+      globals: 11.12.0
+    transitivePeerDependencies:
+      - supports-color
+
   '@babel/types@7.25.7':
     dependencies:
       '@babel/helper-string-parser': 7.25.7
@@ -2309,82 +2983,150 @@ snapshots:
 
   '@bcoe/v8-coverage@0.2.3': {}
 
-  '@cspotcode/source-map-support@0.8.1':
-    dependencies:
-      '@jridgewell/trace-mapping': 0.3.9
-
   '@esbuild/aix-ppc64@0.21.5':
     optional: true
 
+  '@esbuild/aix-ppc64@0.24.0':
+    optional: true
+
   '@esbuild/android-arm64@0.21.5':
     optional: true
 
+  '@esbuild/android-arm64@0.24.0':
+    optional: true
+
   '@esbuild/android-arm@0.21.5':
     optional: true
 
+  '@esbuild/android-arm@0.24.0':
+    optional: true
+
   '@esbuild/android-x64@0.21.5':
     optional: true
 
+  '@esbuild/android-x64@0.24.0':
+    optional: true
+
   '@esbuild/darwin-arm64@0.21.5':
     optional: true
 
+  '@esbuild/darwin-arm64@0.24.0':
+    optional: true
+
   '@esbuild/darwin-x64@0.21.5':
     optional: true
 
+  '@esbuild/darwin-x64@0.24.0':
+    optional: true
+
   '@esbuild/freebsd-arm64@0.21.5':
     optional: true
 
+  '@esbuild/freebsd-arm64@0.24.0':
+    optional: true
+
   '@esbuild/freebsd-x64@0.21.5':
     optional: true
 
+  '@esbuild/freebsd-x64@0.24.0':
+    optional: true
+
   '@esbuild/linux-arm64@0.21.5':
     optional: true
 
+  '@esbuild/linux-arm64@0.24.0':
+    optional: true
+
   '@esbuild/linux-arm@0.21.5':
     optional: true
 
+  '@esbuild/linux-arm@0.24.0':
+    optional: true
+
   '@esbuild/linux-ia32@0.21.5':
     optional: true
 
+  '@esbuild/linux-ia32@0.24.0':
+    optional: true
+
   '@esbuild/linux-loong64@0.21.5':
     optional: true
 
+  '@esbuild/linux-loong64@0.24.0':
+    optional: true
+
   '@esbuild/linux-mips64el@0.21.5':
     optional: true
 
+  '@esbuild/linux-mips64el@0.24.0':
+    optional: true
+
   '@esbuild/linux-ppc64@0.21.5':
     optional: true
 
+  '@esbuild/linux-ppc64@0.24.0':
+    optional: true
+
   '@esbuild/linux-riscv64@0.21.5':
     optional: true
 
+  '@esbuild/linux-riscv64@0.24.0':
+    optional: true
+
   '@esbuild/linux-s390x@0.21.5':
     optional: true
 
+  '@esbuild/linux-s390x@0.24.0':
+    optional: true
+
   '@esbuild/linux-x64@0.21.5':
     optional: true
 
+  '@esbuild/linux-x64@0.24.0':
+    optional: true
+
   '@esbuild/netbsd-x64@0.21.5':
     optional: true
 
+  '@esbuild/netbsd-x64@0.24.0':
+    optional: true
+
+  '@esbuild/openbsd-arm64@0.24.0':
+    optional: true
+
   '@esbuild/openbsd-x64@0.21.5':
     optional: true
 
+  '@esbuild/openbsd-x64@0.24.0':
+    optional: true
+
   '@esbuild/sunos-x64@0.21.5':
     optional: true
 
+  '@esbuild/sunos-x64@0.24.0':
+    optional: true
+
   '@esbuild/win32-arm64@0.21.5':
     optional: true
 
+  '@esbuild/win32-arm64@0.24.0':
+    optional: true
+
   '@esbuild/win32-ia32@0.21.5':
     optional: true
 
+  '@esbuild/win32-ia32@0.24.0':
+    optional: true
+
   '@esbuild/win32-x64@0.21.5':
     optional: true
 
-  '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0)':
+  '@esbuild/win32-x64@0.24.0':
+    optional: true
+
+  '@eslint-community/eslint-utils@4.4.0(eslint@9.12.0(jiti@2.3.3))':
     dependencies:
-      eslint: 9.12.0
+      eslint: 9.12.0(jiti@2.3.3)
       eslint-visitor-keys: 3.4.3
 
   '@eslint-community/regexpp@4.11.1': {}
@@ -2445,23 +3187,6 @@ snapshots:
 
   '@istanbuljs/schema@0.1.3': {}
 
-  '@jest/expect-utils@29.7.0':
-    dependencies:
-      jest-get-type: 29.6.3
-
-  '@jest/schemas@29.6.3':
-    dependencies:
-      '@sinclair/typebox': 0.27.8
-
-  '@jest/types@29.6.3':
-    dependencies:
-      '@jest/schemas': 29.6.3
-      '@types/istanbul-lib-coverage': 2.0.6
-      '@types/istanbul-reports': 3.0.4
-      '@types/node': 22.7.4
-      '@types/yargs': 17.0.33
-      chalk: 4.1.2
-
   '@jridgewell/gen-mapping@0.3.5':
     dependencies:
       '@jridgewell/set-array': 1.2.1
@@ -2476,6 +3201,7 @@ snapshots:
     dependencies:
       '@jridgewell/gen-mapping': 0.3.5
       '@jridgewell/trace-mapping': 0.3.25
+    optional: true
 
   '@jridgewell/sourcemap-codec@1.5.0': {}
 
@@ -2484,11 +3210,6 @@ snapshots:
       '@jridgewell/resolve-uri': 3.1.2
       '@jridgewell/sourcemap-codec': 1.5.0
 
-  '@jridgewell/trace-mapping@0.3.9':
-    dependencies:
-      '@jridgewell/resolve-uri': 3.1.2
-      '@jridgewell/sourcemap-codec': 1.5.0
-
   '@nodelib/fs.scandir@2.1.5':
     dependencies:
       '@nodelib/fs.stat': 2.0.5
@@ -2504,7 +3225,9 @@ snapshots:
   '@pkgjs/parseargs@0.11.0':
     optional: true
 
-  '@pkgr/core@0.1.1': {}
+  '@rollup/plugin-alias@5.1.1(rollup@4.24.0)':
+    optionalDependencies:
+      rollup: 4.24.0
 
   '@rollup/plugin-commonjs@28.0.0(rollup@4.24.0)':
     dependencies:
@@ -2518,6 +3241,12 @@ snapshots:
     optionalDependencies:
       rollup: 4.24.0
 
+  '@rollup/plugin-json@6.1.0(rollup@4.24.0)':
+    dependencies:
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+    optionalDependencies:
+      rollup: 4.24.0
+
   '@rollup/plugin-node-resolve@15.3.0(rollup@4.24.0)':
     dependencies:
       '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
@@ -2528,14 +3257,12 @@ snapshots:
     optionalDependencies:
       rollup: 4.24.0
 
-  '@rollup/plugin-typescript@12.1.0(rollup@4.24.0)(tslib@2.7.0)(typescript@5.6.2)':
+  '@rollup/plugin-replace@6.0.1(rollup@4.24.0)':
     dependencies:
       '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
-      resolve: 1.22.8
-      typescript: 5.6.2
+      magic-string: 0.30.11
     optionalDependencies:
       rollup: 4.24.0
-      tslib: 2.7.0
 
   '@rollup/pluginutils@5.1.2(rollup@4.24.0)':
     dependencies:
@@ -2620,15 +3347,19 @@ snapshots:
 
   '@shikijs/vscode-textmate@9.3.0': {}
 
-  '@sinclair/typebox@0.27.8': {}
-
-  '@tsconfig/node10@1.0.11': {}
-
-  '@tsconfig/node12@1.0.11': {}
-
-  '@tsconfig/node14@1.0.3': {}
+  '@stylistic/eslint-plugin@2.9.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/utils': 8.8.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      eslint: 9.12.0(jiti@2.3.3)
+      eslint-visitor-keys: 4.1.0
+      espree: 10.2.0
+      estraverse: 5.3.0
+      picomatch: 4.0.2
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
 
-  '@tsconfig/node16@1.0.4': {}
+  '@trysound/sax@0.2.0': {}
 
   '@types/estree@1.0.6': {}
 
@@ -2636,21 +3367,6 @@ snapshots:
     dependencies:
       '@types/unist': 3.0.3
 
-  '@types/istanbul-lib-coverage@2.0.6': {}
-
-  '@types/istanbul-lib-report@3.0.3':
-    dependencies:
-      '@types/istanbul-lib-coverage': 2.0.6
-
-  '@types/istanbul-reports@3.0.4':
-    dependencies:
-      '@types/istanbul-lib-report': 3.0.3
-
-  '@types/jest@29.5.13':
-    dependencies:
-      expect: 29.7.0
-      pretty-format: 29.7.0
-
   '@types/json-schema@7.0.15': {}
 
   '@types/mdast@4.0.4':
@@ -2667,25 +3383,17 @@ snapshots:
 
   '@types/resolve@1.20.2': {}
 
-  '@types/stack-utils@2.0.3': {}
-
   '@types/unist@3.0.3': {}
 
-  '@types/yargs-parser@21.0.3': {}
-
-  '@types/yargs@17.0.33':
-    dependencies:
-      '@types/yargs-parser': 21.0.3
-
-  '@typescript-eslint/eslint-plugin@8.8.0(@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2))(eslint@9.12.0)(typescript@5.6.2)':
+  '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
     dependencies:
       '@eslint-community/regexpp': 4.11.1
-      '@typescript-eslint/parser': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
-      '@typescript-eslint/scope-manager': 8.8.0
-      '@typescript-eslint/type-utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
-      '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
-      '@typescript-eslint/visitor-keys': 8.8.0
-      eslint: 9.12.0
+      '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/scope-manager': 8.8.1
+      '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/visitor-keys': 8.8.1
+      eslint: 9.12.0(jiti@2.3.3)
       graphemer: 1.4.0
       ignore: 5.3.2
       natural-compare: 1.4.0
@@ -2695,14 +3403,14 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/parser@8.8.0(eslint@9.12.0)(typescript@5.6.2)':
+  '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
     dependencies:
-      '@typescript-eslint/scope-manager': 8.8.0
-      '@typescript-eslint/types': 8.8.0
-      '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
-      '@typescript-eslint/visitor-keys': 8.8.0
+      '@typescript-eslint/scope-manager': 8.8.1
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2)
+      '@typescript-eslint/visitor-keys': 8.8.1
       debug: 4.3.7
-      eslint: 9.12.0
+      eslint: 9.12.0(jiti@2.3.3)
     optionalDependencies:
       typescript: 5.6.2
     transitivePeerDependencies:
@@ -2713,10 +3421,15 @@ snapshots:
       '@typescript-eslint/types': 8.8.0
       '@typescript-eslint/visitor-keys': 8.8.0
 
-  '@typescript-eslint/type-utils@8.8.0(eslint@9.12.0)(typescript@5.6.2)':
+  '@typescript-eslint/scope-manager@8.8.1':
     dependencies:
-      '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
-      '@typescript-eslint/utils': 8.8.0(eslint@9.12.0)(typescript@5.6.2)
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/visitor-keys': 8.8.1
+
+  '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
       debug: 4.3.7
       ts-api-utils: 1.3.0(typescript@5.6.2)
     optionalDependencies:
@@ -2727,6 +3440,8 @@ snapshots:
 
   '@typescript-eslint/types@8.8.0': {}
 
+  '@typescript-eslint/types@8.8.1': {}
+
   '@typescript-eslint/typescript-estree@8.8.0(typescript@5.6.2)':
     dependencies:
       '@typescript-eslint/types': 8.8.0
@@ -2742,13 +3457,39 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@typescript-eslint/utils@8.8.0(eslint@9.12.0)(typescript@5.6.2)':
+  '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.2)':
+    dependencies:
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/visitor-keys': 8.8.1
+      debug: 4.3.7
+      fast-glob: 3.3.2
+      is-glob: 4.0.3
+      minimatch: 9.0.5
+      semver: 7.6.3
+      ts-api-utils: 1.3.0(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - supports-color
+
+  '@typescript-eslint/utils@8.8.0(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3))
       '@typescript-eslint/scope-manager': 8.8.0
       '@typescript-eslint/types': 8.8.0
       '@typescript-eslint/typescript-estree': 8.8.0(typescript@5.6.2)
-      eslint: 9.12.0
+      eslint: 9.12.0(jiti@2.3.3)
+    transitivePeerDependencies:
+      - supports-color
+      - typescript
+
+  '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)':
+    dependencies:
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3))
+      '@typescript-eslint/scope-manager': 8.8.1
+      '@typescript-eslint/types': 8.8.1
+      '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2)
+      eslint: 9.12.0(jiti@2.3.3)
     transitivePeerDependencies:
       - supports-color
       - typescript
@@ -2758,6 +3499,11 @@ snapshots:
       '@typescript-eslint/types': 8.8.0
       eslint-visitor-keys: 3.4.3
 
+  '@typescript-eslint/visitor-keys@8.8.1':
+    dependencies:
+      '@typescript-eslint/types': 8.8.1
+      eslint-visitor-keys: 3.4.3
+
   '@ungap/structured-clone@1.2.0': {}
 
   '@vitest/coverage-v8@2.1.2(vitest@2.1.2(@types/node@22.7.4)(terser@5.34.1))':
@@ -2827,10 +3573,6 @@ snapshots:
     dependencies:
       acorn: 8.12.1
 
-  acorn-walk@8.3.4:
-    dependencies:
-      acorn: 8.12.1
-
   acorn@8.12.1: {}
 
   add-stream@1.0.0: {}
@@ -2854,11 +3596,12 @@ snapshots:
     dependencies:
       color-convert: 2.0.1
 
-  ansi-styles@5.2.0: {}
-
   ansi-styles@6.2.1: {}
 
-  arg@4.1.3: {}
+  anymatch@3.1.3:
+    dependencies:
+      normalize-path: 3.0.0
+      picomatch: 2.3.1
 
   argparse@2.0.1: {}
 
@@ -2868,8 +3611,22 @@ snapshots:
 
   assertion-error@2.0.1: {}
 
+  autoprefixer@10.4.20(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-lite: 1.0.30001667
+      fraction.js: 4.3.7
+      normalize-range: 0.1.2
+      picocolors: 1.1.0
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
   balanced-match@1.0.2: {}
 
+  binary-extensions@2.3.0: {}
+
+  boolbase@1.0.0: {}
+
   brace-expansion@1.1.11:
     dependencies:
       balanced-match: 1.0.2
@@ -2883,8 +3640,36 @@ snapshots:
     dependencies:
       fill-range: 7.1.1
 
+  browserslist@4.24.0:
+    dependencies:
+      caniuse-lite: 1.0.30001667
+      electron-to-chromium: 1.5.33
+      node-releases: 2.0.18
+      update-browserslist-db: 1.1.1(browserslist@4.24.0)
+
   buffer-from@1.1.2: {}
 
+  bundle-name@4.1.0:
+    dependencies:
+      run-applescript: 7.0.0
+
+  c12@1.11.2(magicast@0.3.5):
+    dependencies:
+      chokidar: 3.6.0
+      confbox: 0.1.8
+      defu: 6.1.4
+      dotenv: 16.4.5
+      giget: 1.2.3
+      jiti: 1.21.6
+      mlly: 1.7.2
+      ohash: 1.1.4
+      pathe: 1.1.2
+      perfect-debounce: 1.0.0
+      pkg-types: 1.2.0
+      rc9: 2.1.2
+    optionalDependencies:
+      magicast: 0.3.5
+
   cac@6.7.14: {}
 
   callsites@3.1.0: {}
@@ -2897,6 +3682,15 @@ snapshots:
 
   camelcase@5.3.1: {}
 
+  caniuse-api@3.0.0:
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-lite: 1.0.30001667
+      lodash.memoize: 4.1.2
+      lodash.uniq: 4.5.0
+
+  caniuse-lite@1.0.30001667: {}
+
   ccount@2.0.1: {}
 
   chai@5.1.1:
@@ -2918,13 +3712,48 @@ snapshots:
       ansi-styles: 4.3.0
       supports-color: 7.2.0
 
+  changelogen@0.5.7(magicast@0.3.5):
+    dependencies:
+      c12: 1.11.2(magicast@0.3.5)
+      colorette: 2.0.20
+      consola: 3.2.3
+      convert-gitmoji: 0.1.5
+      mri: 1.2.0
+      node-fetch-native: 1.6.4
+      ofetch: 1.4.0
+      open: 10.1.0
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      scule: 1.3.0
+      semver: 7.6.3
+      std-env: 3.7.0
+      yaml: 2.5.1
+    transitivePeerDependencies:
+      - magicast
+
   character-entities-html4@2.1.0: {}
 
   character-entities-legacy@3.0.0: {}
 
   check-error@2.1.1: {}
 
-  ci-info@3.9.0: {}
+  chokidar@3.6.0:
+    dependencies:
+      anymatch: 3.1.3
+      braces: 3.0.3
+      glob-parent: 5.1.2
+      is-binary-path: 2.1.0
+      is-glob: 4.0.3
+      normalize-path: 3.0.0
+      readdirp: 3.6.0
+    optionalDependencies:
+      fsevents: 2.3.3
+
+  chownr@2.0.0: {}
+
+  citty@0.1.6:
+    dependencies:
+      consola: 3.2.3
 
   cliui@7.0.4:
     dependencies:
@@ -2944,9 +3773,16 @@ snapshots:
 
   color-name@1.1.4: {}
 
+  colord@2.9.3: {}
+
+  colorette@2.0.20: {}
+
   comma-separated-tokens@2.0.3: {}
 
-  commander@2.20.3: {}
+  commander@2.20.3:
+    optional: true
+
+  commander@7.2.0: {}
 
   commondir@1.0.1: {}
 
@@ -2964,6 +3800,10 @@ snapshots:
       readable-stream: 3.6.2
       typedarray: 0.0.6
 
+  confbox@0.1.8: {}
+
+  consola@3.2.3: {}
+
   conventional-changelog-angular@5.0.13:
     dependencies:
       compare-func: 2.0.0
@@ -3076,19 +3916,11 @@ snapshots:
       meow: 8.1.2
       q: 1.5.1
 
-  copyfiles@2.4.1:
-    dependencies:
-      glob: 7.2.3
-      minimatch: 3.1.2
-      mkdirp: 1.0.4
-      noms: 0.0.0
-      through2: 2.0.5
-      untildify: 4.0.0
-      yargs: 16.2.0
+  convert-gitmoji@0.1.5: {}
 
-  core-util-is@1.0.3: {}
+  convert-source-map@2.0.0: {}
 
-  create-require@1.1.1: {}
+  core-util-is@1.0.3: {}
 
   cross-spawn@7.0.3:
     dependencies:
@@ -3096,6 +3928,80 @@ snapshots:
       shebang-command: 2.0.0
       which: 2.0.2
 
+  css-declaration-sorter@7.2.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  css-select@5.1.0:
+    dependencies:
+      boolbase: 1.0.0
+      css-what: 6.1.0
+      domhandler: 5.0.3
+      domutils: 3.1.0
+      nth-check: 2.1.1
+
+  css-tree@2.2.1:
+    dependencies:
+      mdn-data: 2.0.28
+      source-map-js: 1.2.1
+
+  css-tree@2.3.1:
+    dependencies:
+      mdn-data: 2.0.30
+      source-map-js: 1.2.1
+
+  css-what@6.1.0: {}
+
+  cssesc@3.0.0: {}
+
+  cssnano-preset-default@7.0.6(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      css-declaration-sorter: 7.2.0(postcss@8.4.47)
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-calc: 10.0.2(postcss@8.4.47)
+      postcss-colormin: 7.0.2(postcss@8.4.47)
+      postcss-convert-values: 7.0.4(postcss@8.4.47)
+      postcss-discard-comments: 7.0.3(postcss@8.4.47)
+      postcss-discard-duplicates: 7.0.1(postcss@8.4.47)
+      postcss-discard-empty: 7.0.0(postcss@8.4.47)
+      postcss-discard-overridden: 7.0.0(postcss@8.4.47)
+      postcss-merge-longhand: 7.0.4(postcss@8.4.47)
+      postcss-merge-rules: 7.0.4(postcss@8.4.47)
+      postcss-minify-font-values: 7.0.0(postcss@8.4.47)
+      postcss-minify-gradients: 7.0.0(postcss@8.4.47)
+      postcss-minify-params: 7.0.2(postcss@8.4.47)
+      postcss-minify-selectors: 7.0.4(postcss@8.4.47)
+      postcss-normalize-charset: 7.0.0(postcss@8.4.47)
+      postcss-normalize-display-values: 7.0.0(postcss@8.4.47)
+      postcss-normalize-positions: 7.0.0(postcss@8.4.47)
+      postcss-normalize-repeat-style: 7.0.0(postcss@8.4.47)
+      postcss-normalize-string: 7.0.0(postcss@8.4.47)
+      postcss-normalize-timing-functions: 7.0.0(postcss@8.4.47)
+      postcss-normalize-unicode: 7.0.2(postcss@8.4.47)
+      postcss-normalize-url: 7.0.0(postcss@8.4.47)
+      postcss-normalize-whitespace: 7.0.0(postcss@8.4.47)
+      postcss-ordered-values: 7.0.1(postcss@8.4.47)
+      postcss-reduce-initial: 7.0.2(postcss@8.4.47)
+      postcss-reduce-transforms: 7.0.0(postcss@8.4.47)
+      postcss-svgo: 7.0.1(postcss@8.4.47)
+      postcss-unique-selectors: 7.0.3(postcss@8.4.47)
+
+  cssnano-utils@5.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  cssnano@7.0.6(postcss@8.4.47):
+    dependencies:
+      cssnano-preset-default: 7.0.6(postcss@8.4.47)
+      lilconfig: 3.1.2
+      postcss: 8.4.47
+
+  csso@5.0.5:
+    dependencies:
+      css-tree: 2.2.1
+
   dargs@7.0.0: {}
 
   dateformat@3.0.3: {}
@@ -3117,8 +4023,21 @@ snapshots:
 
   deepmerge@4.3.1: {}
 
+  default-browser-id@5.0.0: {}
+
+  default-browser@5.2.1:
+    dependencies:
+      bundle-name: 4.1.0
+      default-browser-id: 5.0.0
+
+  define-lazy-prop@3.0.0: {}
+
+  defu@6.1.4: {}
+
   dequal@2.0.3: {}
 
+  destr@2.0.3: {}
+
   detect-indent@6.1.0: {}
 
   detect-newline@3.1.0: {}
@@ -3127,14 +4046,30 @@ snapshots:
     dependencies:
       dequal: 2.0.3
 
-  diff-sequences@29.6.3: {}
+  dom-serializer@2.0.0:
+    dependencies:
+      domelementtype: 2.3.0
+      domhandler: 5.0.3
+      entities: 4.5.0
+
+  domelementtype@2.3.0: {}
+
+  domhandler@5.0.3:
+    dependencies:
+      domelementtype: 2.3.0
 
-  diff@4.0.2: {}
+  domutils@3.1.0:
+    dependencies:
+      dom-serializer: 2.0.0
+      domelementtype: 2.3.0
+      domhandler: 5.0.3
 
   dot-prop@5.3.0:
     dependencies:
       is-obj: 2.0.0
 
+  dotenv@16.4.5: {}
+
   dotgitignore@2.1.0:
     dependencies:
       find-up: 3.0.0
@@ -3142,6 +4077,8 @@ snapshots:
 
   eastasianwidth@0.2.0: {}
 
+  electron-to-chromium@1.5.33: {}
+
   emoji-regex@8.0.0: {}
 
   emoji-regex@9.2.2: {}
@@ -3178,27 +4115,39 @@ snapshots:
       '@esbuild/win32-ia32': 0.21.5
       '@esbuild/win32-x64': 0.21.5
 
+  esbuild@0.24.0:
+    optionalDependencies:
+      '@esbuild/aix-ppc64': 0.24.0
+      '@esbuild/android-arm': 0.24.0
+      '@esbuild/android-arm64': 0.24.0
+      '@esbuild/android-x64': 0.24.0
+      '@esbuild/darwin-arm64': 0.24.0
+      '@esbuild/darwin-x64': 0.24.0
+      '@esbuild/freebsd-arm64': 0.24.0
+      '@esbuild/freebsd-x64': 0.24.0
+      '@esbuild/linux-arm': 0.24.0
+      '@esbuild/linux-arm64': 0.24.0
+      '@esbuild/linux-ia32': 0.24.0
+      '@esbuild/linux-loong64': 0.24.0
+      '@esbuild/linux-mips64el': 0.24.0
+      '@esbuild/linux-ppc64': 0.24.0
+      '@esbuild/linux-riscv64': 0.24.0
+      '@esbuild/linux-s390x': 0.24.0
+      '@esbuild/linux-x64': 0.24.0
+      '@esbuild/netbsd-x64': 0.24.0
+      '@esbuild/openbsd-arm64': 0.24.0
+      '@esbuild/openbsd-x64': 0.24.0
+      '@esbuild/sunos-x64': 0.24.0
+      '@esbuild/win32-arm64': 0.24.0
+      '@esbuild/win32-ia32': 0.24.0
+      '@esbuild/win32-x64': 0.24.0
+
   escalade@3.2.0: {}
 
   escape-string-regexp@1.0.5: {}
 
-  escape-string-regexp@2.0.0: {}
-
   escape-string-regexp@4.0.0: {}
 
-  eslint-config-prettier@9.1.0(eslint@9.12.0):
-    dependencies:
-      eslint: 9.12.0
-
-  eslint-plugin-prettier@5.2.1(eslint-config-prettier@9.1.0(eslint@9.12.0))(eslint@9.12.0)(prettier@3.3.3):
-    dependencies:
-      eslint: 9.12.0
-      prettier: 3.3.3
-      prettier-linter-helpers: 1.0.0
-      synckit: 0.9.1
-    optionalDependencies:
-      eslint-config-prettier: 9.1.0(eslint@9.12.0)
-
   eslint-scope@8.1.0:
     dependencies:
       esrecurse: 4.3.0
@@ -3208,9 +4157,9 @@ snapshots:
 
   eslint-visitor-keys@4.1.0: {}
 
-  eslint@9.12.0:
+  eslint@9.12.0(jiti@2.3.3):
     dependencies:
-      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0)
+      '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@2.3.3))
       '@eslint-community/regexpp': 4.11.1
       '@eslint/config-array': 0.18.0
       '@eslint/core': 0.6.0
@@ -3245,6 +4194,8 @@ snapshots:
       natural-compare: 1.4.0
       optionator: 0.9.4
       text-table: 0.2.0
+    optionalDependencies:
+      jiti: 2.3.3
     transitivePeerDependencies:
       - supports-color
 
@@ -3272,18 +4223,20 @@ snapshots:
 
   esutils@2.0.3: {}
 
-  expect@29.7.0:
+  execa@8.0.1:
     dependencies:
-      '@jest/expect-utils': 29.7.0
-      jest-get-type: 29.6.3
-      jest-matcher-utils: 29.7.0
-      jest-message-util: 29.7.0
-      jest-util: 29.7.0
+      cross-spawn: 7.0.3
+      get-stream: 8.0.1
+      human-signals: 5.0.0
+      is-stream: 3.0.0
+      merge-stream: 2.0.0
+      npm-run-path: 5.3.0
+      onetime: 6.0.0
+      signal-exit: 4.1.0
+      strip-final-newline: 3.0.0
 
   fast-deep-equal@3.1.3: {}
 
-  fast-diff@1.3.0: {}
-
   fast-glob@3.3.2:
     dependencies:
       '@nodelib/fs.stat': 2.0.5
@@ -3304,6 +4257,10 @@ snapshots:
     optionalDependencies:
       picomatch: 2.3.1
 
+  fdir@6.4.0(picomatch@4.0.2):
+    optionalDependencies:
+      picomatch: 4.0.2
+
   figures@3.2.0:
     dependencies:
       escape-string-regexp: 1.0.5
@@ -3346,13 +4303,19 @@ snapshots:
       cross-spawn: 7.0.3
       signal-exit: 4.1.0
 
-  fs.realpath@1.0.0: {}
+  fraction.js@4.3.7: {}
+
+  fs-minipass@2.1.0:
+    dependencies:
+      minipass: 3.3.6
 
   fsevents@2.3.3:
     optional: true
 
   function-bind@1.1.2: {}
 
+  gensync@1.0.0-beta.2: {}
+
   get-caller-file@2.0.5: {}
 
   get-func-name@2.0.2: {}
@@ -3364,6 +4327,19 @@ snapshots:
       through2: 2.0.5
       yargs: 16.2.0
 
+  get-stream@8.0.1: {}
+
+  giget@1.2.3:
+    dependencies:
+      citty: 0.1.6
+      consola: 3.2.3
+      defu: 6.1.4
+      node-fetch-native: 1.6.4
+      nypm: 0.3.12
+      ohash: 1.1.4
+      pathe: 1.1.2
+      tar: 6.2.1
+
   git-raw-commits@2.0.11:
     dependencies:
       dargs: 7.0.0
@@ -3412,17 +4388,12 @@ snapshots:
       package-json-from-dist: 1.0.1
       path-scurry: 2.0.0
 
-  glob@7.2.3:
-    dependencies:
-      fs.realpath: 1.0.0
-      inflight: 1.0.6
-      inherits: 2.0.4
-      minimatch: 3.1.2
-      once: 1.4.0
-      path-is-absolute: 1.0.1
+  globals@11.12.0: {}
 
   globals@14.0.0: {}
 
+  globals@15.10.0: {}
+
   graceful-fs@4.2.11: {}
 
   graphemer@1.4.0: {}
@@ -3464,6 +4435,8 @@ snapshots:
     dependencies:
       '@types/hast': 3.0.4
 
+  hookable@5.5.3: {}
+
   hosted-git-info@2.8.9: {}
 
   hosted-git-info@4.1.0:
@@ -3474,6 +4447,8 @@ snapshots:
 
   html-void-elements@3.0.0: {}
 
+  human-signals@5.0.0: {}
+
   ignore@5.3.2: {}
 
   import-fresh@3.3.0:
@@ -3485,21 +4460,22 @@ snapshots:
 
   indent-string@4.0.0: {}
 
-  inflight@1.0.6:
-    dependencies:
-      once: 1.4.0
-      wrappy: 1.0.2
-
   inherits@2.0.4: {}
 
   ini@1.3.8: {}
 
   is-arrayish@0.2.1: {}
 
+  is-binary-path@2.1.0:
+    dependencies:
+      binary-extensions: 2.3.0
+
   is-core-module@2.15.1:
     dependencies:
       hasown: 2.0.2
 
+  is-docker@3.0.0: {}
+
   is-extglob@2.1.1: {}
 
   is-fullwidth-code-point@3.0.0: {}
@@ -3508,6 +4484,10 @@ snapshots:
     dependencies:
       is-extglob: 2.1.1
 
+  is-inside-container@1.0.0:
+    dependencies:
+      is-docker: 3.0.0
+
   is-module@1.0.0: {}
 
   is-number@7.0.0: {}
@@ -3520,11 +4500,15 @@ snapshots:
     dependencies:
       '@types/estree': 1.0.6
 
+  is-stream@3.0.0: {}
+
   is-text-path@1.0.1:
     dependencies:
       text-extensions: 1.9.0
 
-  isarray@0.0.1: {}
+  is-wsl@3.1.0:
+    dependencies:
+      is-inside-container: 1.0.0
 
   isarray@1.0.0: {}
 
@@ -3561,48 +4545,9 @@ snapshots:
     dependencies:
       '@isaacs/cliui': 8.0.2
 
-  jest-diff@29.7.0:
-    dependencies:
-      chalk: 4.1.2
-      diff-sequences: 29.6.3
-      jest-get-type: 29.6.3
-      pretty-format: 29.7.0
-
-  jest-get-type@29.6.3: {}
-
-  jest-matcher-utils@29.7.0:
-    dependencies:
-      chalk: 4.1.2
-      jest-diff: 29.7.0
-      jest-get-type: 29.6.3
-      pretty-format: 29.7.0
-
-  jest-message-util@29.7.0:
-    dependencies:
-      '@babel/code-frame': 7.25.7
-      '@jest/types': 29.6.3
-      '@types/stack-utils': 2.0.3
-      chalk: 4.1.2
-      graceful-fs: 4.2.11
-      micromatch: 4.0.8
-      pretty-format: 29.7.0
-      slash: 3.0.0
-      stack-utils: 2.0.6
-
-  jest-util@29.7.0:
-    dependencies:
-      '@jest/types': 29.6.3
-      '@types/node': 22.7.4
-      chalk: 4.1.2
-      ci-info: 3.9.0
-      graceful-fs: 4.2.11
-      picomatch: 2.3.1
+  jiti@1.21.6: {}
 
-  jest-worker@26.6.2:
-    dependencies:
-      '@types/node': 22.7.4
-      merge-stream: 2.0.0
-      supports-color: 7.2.0
+  jiti@2.3.3: {}
 
   js-tokens@4.0.0: {}
 
@@ -3610,6 +4555,8 @@ snapshots:
     dependencies:
       argparse: 2.0.1
 
+  jsesc@3.0.2: {}
+
   json-buffer@3.0.1: {}
 
   json-parse-better-errors@1.0.2: {}
@@ -3622,6 +4569,8 @@ snapshots:
 
   json-stringify-safe@5.0.1: {}
 
+  json5@2.2.3: {}
+
   jsonparse@1.3.1: {}
 
   keyv@4.5.4:
@@ -3635,6 +4584,8 @@ snapshots:
       prelude-ls: 1.2.1
       type-check: 0.4.0
 
+  lilconfig@3.1.2: {}
+
   lines-and-columns@1.2.4: {}
 
   linkify-it@5.0.0:
@@ -3668,8 +4619,12 @@ snapshots:
 
   lodash.ismatch@4.4.0: {}
 
+  lodash.memoize@4.1.2: {}
+
   lodash.merge@4.6.2: {}
 
+  lodash.uniq@4.5.0: {}
+
   lodash@4.17.21: {}
 
   loupe@3.1.1:
@@ -3680,6 +4635,10 @@ snapshots:
 
   lru-cache@11.0.1: {}
 
+  lru-cache@5.1.1:
+    dependencies:
+      yallist: 3.1.1
+
   lru-cache@6.0.0:
     dependencies:
       yallist: 4.0.0
@@ -3700,8 +4659,6 @@ snapshots:
     dependencies:
       semver: 7.6.3
 
-  make-error@1.3.6: {}
-
   map-obj@1.0.1: {}
 
   map-obj@4.3.0: {}
@@ -3727,6 +4684,10 @@ snapshots:
       unist-util-visit: 5.0.0
       vfile: 6.0.3
 
+  mdn-data@2.0.28: {}
+
+  mdn-data@2.0.30: {}
+
   mdurl@2.0.0: {}
 
   meow@8.1.2:
@@ -3769,6 +4730,8 @@ snapshots:
       braces: 3.0.3
       picomatch: 2.3.1
 
+  mimic-fn@4.0.0: {}
+
   min-indent@1.0.1: {}
 
   minimatch@10.0.1:
@@ -3791,12 +4754,50 @@ snapshots:
 
   minimist@1.2.8: {}
 
+  minipass@3.3.6:
+    dependencies:
+      yallist: 4.0.0
+
+  minipass@5.0.0: {}
+
   minipass@7.1.2: {}
 
+  minizlib@2.1.2:
+    dependencies:
+      minipass: 3.3.6
+      yallist: 4.0.0
+
   mkdirp@1.0.4: {}
 
+  mkdist@1.6.0(typescript@5.6.2):
+    dependencies:
+      autoprefixer: 10.4.20(postcss@8.4.47)
+      citty: 0.1.6
+      cssnano: 7.0.6(postcss@8.4.47)
+      defu: 6.1.4
+      esbuild: 0.24.0
+      jiti: 1.21.6
+      mlly: 1.7.2
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      postcss: 8.4.47
+      postcss-nested: 6.2.0(postcss@8.4.47)
+      semver: 7.6.3
+      tinyglobby: 0.2.9
+    optionalDependencies:
+      typescript: 5.6.2
+
+  mlly@1.7.2:
+    dependencies:
+      acorn: 8.12.1
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      ufo: 1.5.4
+
   modify-values@1.0.1: {}
 
+  mri@1.2.0: {}
+
   ms@2.1.3: {}
 
   nanoid@3.3.7: {}
@@ -3805,10 +4806,9 @@ snapshots:
 
   neo-async@2.6.2: {}
 
-  noms@0.0.0:
-    dependencies:
-      inherits: 2.0.4
-      readable-stream: 1.0.34
+  node-fetch-native@1.6.4: {}
+
+  node-releases@2.0.18: {}
 
   normalize-package-data@2.5.0:
     dependencies:
@@ -3824,14 +4824,50 @@ snapshots:
       semver: 7.6.3
       validate-npm-package-license: 3.0.4
 
-  once@1.4.0:
+  normalize-path@3.0.0: {}
+
+  normalize-range@0.1.2: {}
+
+  npm-run-path@5.3.0:
+    dependencies:
+      path-key: 4.0.0
+
+  nth-check@2.1.1:
+    dependencies:
+      boolbase: 1.0.0
+
+  nypm@0.3.12:
+    dependencies:
+      citty: 0.1.6
+      consola: 3.2.3
+      execa: 8.0.1
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      ufo: 1.5.4
+
+  ofetch@1.4.0:
+    dependencies:
+      destr: 2.0.3
+      node-fetch-native: 1.6.4
+      ufo: 1.5.4
+
+  ohash@1.1.4: {}
+
+  onetime@6.0.0:
     dependencies:
-      wrappy: 1.0.2
+      mimic-fn: 4.0.0
 
   oniguruma-to-js@0.4.3:
     dependencies:
       regex: 4.3.3
 
+  open@10.1.0:
+    dependencies:
+      default-browser: 5.2.1
+      define-lazy-prop: 3.0.0
+      is-inside-container: 1.0.0
+      is-wsl: 3.1.0
+
   optionator@0.9.4:
     dependencies:
       deep-is: 0.1.4
@@ -3895,10 +4931,10 @@ snapshots:
 
   path-exists@4.0.0: {}
 
-  path-is-absolute@1.0.1: {}
-
   path-key@3.1.1: {}
 
+  path-key@4.0.0: {}
+
   path-parse@1.0.7: {}
 
   path-scurry@1.11.1:
@@ -3919,14 +4955,185 @@ snapshots:
 
   pathval@2.0.0: {}
 
+  perfect-debounce@1.0.0: {}
+
   picocolors@1.1.0: {}
 
   picomatch@2.3.1: {}
 
+  picomatch@4.0.2: {}
+
   pify@2.3.0: {}
 
   pify@3.0.0: {}
 
+  pkg-types@1.2.0:
+    dependencies:
+      confbox: 0.1.8
+      mlly: 1.7.2
+      pathe: 1.1.2
+
+  postcss-calc@10.0.2(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+      postcss-value-parser: 4.2.0
+
+  postcss-colormin@7.0.2(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-api: 3.0.0
+      colord: 2.9.3
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-convert-values@7.0.4(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-discard-comments@7.0.3(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-discard-duplicates@7.0.1(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-discard-empty@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-discard-overridden@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-merge-longhand@7.0.4(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+      stylehacks: 7.0.4(postcss@8.4.47)
+
+  postcss-merge-rules@7.0.4(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-api: 3.0.0
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-minify-font-values@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-minify-gradients@7.0.0(postcss@8.4.47):
+    dependencies:
+      colord: 2.9.3
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-minify-params@7.0.2(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-minify-selectors@7.0.4(postcss@8.4.47):
+    dependencies:
+      cssesc: 3.0.0
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-nested@6.2.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-normalize-charset@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+
+  postcss-normalize-display-values@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-positions@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-repeat-style@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-string@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-timing-functions@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-unicode@7.0.2(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-url@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-normalize-whitespace@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-ordered-values@7.0.1(postcss@8.4.47):
+    dependencies:
+      cssnano-utils: 5.0.0(postcss@8.4.47)
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-reduce-initial@7.0.2(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      caniuse-api: 3.0.0
+      postcss: 8.4.47
+
+  postcss-reduce-transforms@7.0.0(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+
+  postcss-selector-parser@6.1.2:
+    dependencies:
+      cssesc: 3.0.0
+      util-deprecate: 1.0.2
+
+  postcss-svgo@7.0.1(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-value-parser: 4.2.0
+      svgo: 3.3.2
+
+  postcss-unique-selectors@7.0.3(postcss@8.4.47):
+    dependencies:
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
+  postcss-value-parser@4.2.0: {}
+
   postcss@8.4.47:
     dependencies:
       nanoid: 3.3.7
@@ -3935,17 +5142,7 @@ snapshots:
 
   prelude-ls@1.2.1: {}
 
-  prettier-linter-helpers@1.0.0:
-    dependencies:
-      fast-diff: 1.3.0
-
-  prettier@3.3.3: {}
-
-  pretty-format@29.7.0:
-    dependencies:
-      '@jest/schemas': 29.6.3
-      ansi-styles: 5.2.0
-      react-is: 18.3.1
+  pretty-bytes@6.1.1: {}
 
   process-nextick-args@2.0.1: {}
 
@@ -3961,11 +5158,10 @@ snapshots:
 
   quick-lru@4.0.1: {}
 
-  randombytes@2.1.0:
+  rc9@2.1.2:
     dependencies:
-      safe-buffer: 5.2.1
-
-  react-is@18.3.1: {}
+      defu: 6.1.4
+      destr: 2.0.3
 
   read-pkg-up@3.0.0:
     dependencies:
@@ -3991,13 +5187,6 @@ snapshots:
       parse-json: 5.2.0
       type-fest: 0.6.0
 
-  readable-stream@1.0.34:
-    dependencies:
-      core-util-is: 1.0.3
-      inherits: 2.0.4
-      isarray: 0.0.1
-      string_decoder: 0.10.31
-
   readable-stream@2.3.8:
     dependencies:
       core-util-is: 1.0.3
@@ -4014,6 +5203,10 @@ snapshots:
       string_decoder: 1.3.0
       util-deprecate: 1.0.2
 
+  readdirp@3.6.0:
+    dependencies:
+      picomatch: 2.3.1
+
   redent@3.0.0:
     dependencies:
       indent-string: 4.0.0
@@ -4038,13 +5231,13 @@ snapshots:
       glob: 11.0.0
       package-json-from-dist: 1.0.1
 
-  rollup-plugin-terser@7.0.2(rollup@4.24.0):
+  rollup-plugin-dts@6.1.1(rollup@4.24.0)(typescript@5.6.2):
     dependencies:
-      '@babel/code-frame': 7.25.7
-      jest-worker: 26.6.2
+      magic-string: 0.30.11
       rollup: 4.24.0
-      serialize-javascript: 4.0.0
-      terser: 5.34.1
+      typescript: 5.6.2
+    optionalDependencies:
+      '@babel/code-frame': 7.25.7
 
   rollup@4.24.0:
     dependencies:
@@ -4068,6 +5261,8 @@ snapshots:
       '@rollup/rollup-win32-x64-msvc': 4.24.0
       fsevents: 2.3.3
 
+  run-applescript@7.0.0: {}
+
   run-parallel@1.2.0:
     dependencies:
       queue-microtask: 1.2.3
@@ -4076,16 +5271,14 @@ snapshots:
 
   safe-buffer@5.2.1: {}
 
+  scule@1.3.0: {}
+
   semver@5.7.2: {}
 
   semver@6.3.1: {}
 
   semver@7.6.3: {}
 
-  serialize-javascript@4.0.0:
-    dependencies:
-      randombytes: 2.1.0
-
   shebang-command@2.0.0:
     dependencies:
       shebang-regex: 3.0.0
@@ -4105,14 +5298,13 @@ snapshots:
 
   signal-exit@4.1.0: {}
 
-  slash@3.0.0: {}
-
   source-map-js@1.2.1: {}
 
   source-map-support@0.5.21:
     dependencies:
       buffer-from: 1.1.2
       source-map: 0.6.1
+    optional: true
 
   source-map@0.6.1: {}
 
@@ -4140,10 +5332,6 @@ snapshots:
     dependencies:
       through: 2.3.8
 
-  stack-utils@2.0.6:
-    dependencies:
-      escape-string-regexp: 2.0.0
-
   stackback@0.0.2: {}
 
   standard-version@9.5.0:
@@ -4177,8 +5365,6 @@ snapshots:
       emoji-regex: 9.2.2
       strip-ansi: 7.1.0
 
-  string_decoder@0.10.31: {}
-
   string_decoder@1.1.1:
     dependencies:
       safe-buffer: 5.1.2
@@ -4204,12 +5390,20 @@ snapshots:
 
   strip-bom@3.0.0: {}
 
+  strip-final-newline@3.0.0: {}
+
   strip-indent@3.0.0:
     dependencies:
       min-indent: 1.0.1
 
   strip-json-comments@3.1.1: {}
 
+  stylehacks@7.0.4(postcss@8.4.47):
+    dependencies:
+      browserslist: 4.24.0
+      postcss: 8.4.47
+      postcss-selector-parser: 6.1.2
+
   supports-color@5.5.0:
     dependencies:
       has-flag: 3.0.0
@@ -4220,10 +5414,24 @@ snapshots:
 
   supports-preserve-symlinks-flag@1.0.0: {}
 
-  synckit@0.9.1:
+  svgo@3.3.2:
+    dependencies:
+      '@trysound/sax': 0.2.0
+      commander: 7.2.0
+      css-select: 5.1.0
+      css-tree: 2.3.1
+      css-what: 6.1.0
+      csso: 5.0.5
+      picocolors: 1.1.0
+
+  tar@6.2.1:
     dependencies:
-      '@pkgr/core': 0.1.1
-      tslib: 2.7.0
+      chownr: 2.0.0
+      fs-minipass: 2.1.0
+      minipass: 5.0.0
+      minizlib: 2.1.2
+      mkdirp: 1.0.4
+      yallist: 4.0.0
 
   terser@5.34.1:
     dependencies:
@@ -4231,6 +5439,7 @@ snapshots:
       acorn: 8.12.1
       commander: 2.20.3
       source-map-support: 0.5.21
+    optional: true
 
   test-exclude@7.0.1:
     dependencies:
@@ -4257,6 +5466,11 @@ snapshots:
 
   tinyexec@0.3.0: {}
 
+  tinyglobby@0.2.9:
+    dependencies:
+      fdir: 6.4.0(picomatch@4.0.2)
+      picomatch: 4.0.2
+
   tinypool@1.0.1: {}
 
   tinyrainbow@1.2.0: {}
@@ -4277,26 +5491,6 @@ snapshots:
     dependencies:
       typescript: 5.6.2
 
-  ts-node@10.9.2(@types/node@22.7.4)(typescript@5.6.2):
-    dependencies:
-      '@cspotcode/source-map-support': 0.8.1
-      '@tsconfig/node10': 1.0.11
-      '@tsconfig/node12': 1.0.11
-      '@tsconfig/node14': 1.0.3
-      '@tsconfig/node16': 1.0.4
-      '@types/node': 22.7.4
-      acorn: 8.12.1
-      acorn-walk: 8.3.4
-      arg: 4.1.3
-      create-require: 1.1.1
-      diff: 4.0.2
-      make-error: 1.3.6
-      typescript: 5.6.2
-      v8-compile-cache-lib: 3.0.1
-      yn: 3.1.1
-
-  tslib@2.7.0: {}
-
   type-check@0.4.0:
     dependencies:
       prelude-ls: 1.2.1
@@ -4318,13 +5512,59 @@ snapshots:
       typescript: 5.6.2
       yaml: 2.5.1
 
+  typescript-eslint@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2):
+    dependencies:
+      '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2))(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+      '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@2.3.3))(typescript@5.6.2)
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - eslint
+      - supports-color
+
   typescript@5.6.2: {}
 
   uc.micro@2.1.0: {}
 
+  ufo@1.5.4: {}
+
   uglify-js@3.19.3:
     optional: true
 
+  unbuild@3.0.0-rc.11(typescript@5.6.2):
+    dependencies:
+      '@rollup/plugin-alias': 5.1.1(rollup@4.24.0)
+      '@rollup/plugin-commonjs': 28.0.0(rollup@4.24.0)
+      '@rollup/plugin-json': 6.1.0(rollup@4.24.0)
+      '@rollup/plugin-node-resolve': 15.3.0(rollup@4.24.0)
+      '@rollup/plugin-replace': 6.0.1(rollup@4.24.0)
+      '@rollup/pluginutils': 5.1.2(rollup@4.24.0)
+      citty: 0.1.6
+      consola: 3.2.3
+      defu: 6.1.4
+      esbuild: 0.24.0
+      hookable: 5.5.3
+      jiti: 2.3.3
+      magic-string: 0.30.11
+      mkdist: 1.6.0(typescript@5.6.2)
+      mlly: 1.7.2
+      pathe: 1.1.2
+      pkg-types: 1.2.0
+      pretty-bytes: 6.1.1
+      rollup: 4.24.0
+      rollup-plugin-dts: 6.1.1(rollup@4.24.0)(typescript@5.6.2)
+      scule: 1.3.0
+      tinyglobby: 0.2.9
+      ufo: 1.5.4
+      untyped: 1.5.1
+    optionalDependencies:
+      typescript: 5.6.2
+    transitivePeerDependencies:
+      - sass
+      - supports-color
+      - vue-tsc
+
   undici-types@6.19.8: {}
 
   unist-util-is@6.0.0:
@@ -4350,7 +5590,23 @@ snapshots:
       unist-util-is: 6.0.0
       unist-util-visit-parents: 6.0.1
 
-  untildify@4.0.0: {}
+  untyped@1.5.1:
+    dependencies:
+      '@babel/core': 7.25.7
+      '@babel/standalone': 7.25.7
+      '@babel/types': 7.25.7
+      defu: 6.1.4
+      jiti: 2.3.3
+      mri: 1.2.0
+      scule: 1.3.0
+    transitivePeerDependencies:
+      - supports-color
+
+  update-browserslist-db@1.1.1(browserslist@4.24.0):
+    dependencies:
+      browserslist: 4.24.0
+      escalade: 3.2.0
+      picocolors: 1.1.0
 
   uri-js@4.4.1:
     dependencies:
@@ -4358,8 +5614,6 @@ snapshots:
 
   util-deprecate@1.0.2: {}
 
-  v8-compile-cache-lib@3.0.1: {}
-
   validate-npm-package-license@3.0.4:
     dependencies:
       spdx-correct: 3.2.0
@@ -4461,12 +5715,12 @@ snapshots:
       string-width: 5.1.2
       strip-ansi: 7.1.0
 
-  wrappy@1.0.2: {}
-
   xtend@4.0.2: {}
 
   y18n@5.0.8: {}
 
+  yallist@3.1.1: {}
+
   yallist@4.0.0: {}
 
   yaml@2.5.1: {}
@@ -4483,8 +5737,6 @@ snapshots:
       y18n: 5.0.8
       yargs-parser: 20.2.9
 
-  yn@3.1.1: {}
-
   yocto-queue@0.1.0: {}
 
   zwitch@2.0.4: {}
diff --git a/src/const.ts b/src/const.ts
index a92d400..4bb8d5f 100644
--- a/src/const.ts
+++ b/src/const.ts
@@ -1,4 +1,4 @@
-type QuranMeta = {
+export type QuranMeta = {
   numAyas: number
   numSuras: number
   numPages: number
diff --git a/src/findJuzMetaBySurah.ts b/src/findJuzMetaBySurah.ts
index e8f3350..7f33f94 100644
--- a/src/findJuzMetaBySurah.ts
+++ b/src/findJuzMetaBySurah.ts
@@ -5,10 +5,11 @@ import { JuzList } from "./lists/juzList"
 import { AyahNo, Juz, JuzMeta, Surah } from "./types"
 
 /**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param suraNumber
- * @param ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
+ * Finds the JuzMeta for a given Surah and Ayah.
+ *
+ * @param surah - The Surah (chapter) number.
+ * @param ayah - The Ayah (verse) number.
+ * @returns The JuzMeta object containing the left juz, ayahs between juz and surah, right juz, left ayah ID, and right ayah ID.
  */
 export function findJuzMetaBySurah(surah: Surah, ayah: AyahNo = 1): JuzMeta {
   const {
diff --git a/src/index.ts b/src/index.ts
index 6792a4e..44d324d 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,15 +1,10 @@
 // Quran Meta
 
+export type { QuranMeta } from "./const"
 export type {
   AyahId, AyahNo, Juz, JuzHizb, JuzMeta, Page, PageMeta, Sajda, SajdaType, SuraName, Surah, SurahAyah, SurahAyahSegment, SurahMeta
 } from "./types"
 
-// ------------------ Sura Data ---------------------
-
-export { suraNames as suraNamesEn } from "./i18n/sura.en"
-export { suraNames as suraNamesRu } from "./i18n/sura.ru"
-
-// export default QuranMeta;
 export { ayaStringSplitter } from "./ayaStringSplitter"
 export { meta } from "./const"
 export { findAyaidBySurah } from "./findAyaidBySurah"
@@ -37,3 +32,8 @@ export { nextAyah } from "./nextAyah"
 export { pageMeta } from "./pageMeta"
 export { prevAyah } from "./prevAyah"
 export { checkValidAyahId, checkValidSurah, checkValidSurahAyah } from "./validation"
+
+// ------------------ Sura i18 Data ---------------------
+
+export { suraNames as suraNamesEn } from "./i18n/sura.en"
+export { suraNames as suraNamesRu } from "./i18n/sura.ru"
diff --git a/src/validation.ts b/src/validation.ts
index 0b8c014..c317272 100644
--- a/src/validation.ts
+++ b/src/validation.ts
@@ -42,7 +42,8 @@ export function checkValidSurahAyah(surah: number, ayah: number, checkOnly = fal
 /**
  * Checks if the given Ayah (verse) ID is valid.
  *
- * @param ayaId - The Ayah (verse) ID to check.
+ * @param ayahId - The Ayah (verse) ID to check.
+ * @param checkOnly - If true, the function will only check the validity and not throw an error.
  * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
  */
 export function checkValidAyahId(ayahId: number, checkOnly = false): boolean {
diff --git a/tsconfig.json b/tsconfig.json
index 2eca4ae..762a92e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -2,20 +2,19 @@
   "compilerOptions": {
     "target": "esnext",
     "module": "esnext",
-    "moduleResolution": "node",
+    "moduleResolution": "bundler",
     "rootDir": "./src",
-    "allowJs": false,
-    "experimentalDecorators": true,
+    // "allowJs": false,
+    // "experimentalDecorators": true,
     "resolveJsonModule": true,
     "esModuleInterop": true,
     "removeComments": false,
     "noImplicitAny": true,
     "sourceMap": false,
     "strictNullChecks": true,
-    "typeRoots": ["./node_modules/@types/"],
-    "lib": ["es2015", "es2016", "es2017", "es2018", "esnext"]
+    // "lib": ["es2015", "es2016", "es2017", "es2018", "esnext"]
   },
-  "include": ["src/**/*.ts"],
+  "include": ["src"],
   "exclude": ["node_modules", "dist", "lib_cjs", "lib_es", "examples"],
   "compileOnSave": false
-}
+}
\ No newline at end of file
diff --git a/types/checkValidAyahId.d.ts b/types/checkValidAyahId.d.ts
deleted file mode 100644
index 5031fbb..0000000
--- a/types/checkValidAyahId.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { AyahId } from "./types";
-/**
- * Checks if the given Ayah (verse) ID is valid.
- *
- * @param ayaId - The Ayah (verse) ID to check.
- * @returns True if the Ayah ID is valid, otherwise throws a RangeError.
- */
-export declare function checkValidAyahId(ayaId: AyahId): boolean;
diff --git a/types/checkValidSurah.d.ts b/types/checkValidSurah.d.ts
deleted file mode 100644
index d403719..0000000
--- a/types/checkValidSurah.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Surah } from "./types";
-/**
- * Checks if the given Surah (chapter) number is valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah number is valid, false otherwise.
- */
-export declare function checkValidSurah(surah: Surah, checkOnly?: boolean): boolean;
diff --git a/types/checkValidSurahAyah.d.ts b/types/checkValidSurahAyah.d.ts
deleted file mode 100644
index 6bdf65d..0000000
--- a/types/checkValidSurahAyah.d.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { AyahNo, Surah } from "./types";
-/**
- * Checks if the given Surah and Ayah (verse) numbers are valid.
- *
- * @param surah - The Surah (chapter) number to check.
- * @param ayah - The Ayah (verse) number to check.
- * @param checkOnly - If true, the function will only check the validity and not throw an error.
- * @returns True if the Surah and Ayah numbers are valid, false otherwise.
- */
-export declare function checkValidSurahAyah(surah: Surah, ayah: AyahNo, checkOnly?: boolean): boolean;
diff --git a/types/findJuzMetaBySurah.d.ts b/types/findJuzMetaBySurah.d.ts
deleted file mode 100644
index 930c858..0000000
--- a/types/findJuzMetaBySurah.d.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { AyahNo, JuzMeta, Surah } from "./types";
-/**
- * for given ayah return [starting juz, number of ayahsFrom beginning of that juz, right juz, number of ayahs in surah
- * @param {*} suraNumber
- * @param {*} ayaNumber
- * @returns [leftjuz, ayahsFromStartOfJuz, rightJuz, ayahsinSurah,leftAyahId,rightAyahId]
- */
-export declare function findJuzMetaBySurah(surah: Surah, ayah?: AyahNo): JuzMeta;
diff --git a/types/hizbList.d.ts b/types/hizbList.d.ts
deleted file mode 100644
index 08a6abf..0000000
--- a/types/hizbList.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { AyahId } from "./types";
-export declare const HizbQuarterList: AyahId[];
diff --git a/types/juzList.d.ts b/types/juzList.d.ts
deleted file mode 100644
index acdfcbd..0000000
--- a/types/juzList.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { AyahId } from "./types";
-export declare const JuzList: AyahId[];
diff --git a/types/manzilList.d.ts b/types/manzilList.d.ts
deleted file mode 100644
index 716857b..0000000
--- a/types/manzilList.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { AyahId } from "./types";
-export declare const ManzilList: AyahId[];
diff --git a/types/pageList.d.ts b/types/pageList.d.ts
deleted file mode 100644
index 074106e..0000000
--- a/types/pageList.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { AyahId } from "./types";
-export declare const PageList: AyahId[];
diff --git a/types/rukuList.d.ts b/types/rukuList.d.ts
deleted file mode 100644
index 1bf6ea7..0000000
--- a/types/rukuList.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { AyahId } from "./types";
-export declare const RukuList: AyahId[];
diff --git a/types/sajdaList.d.ts b/types/sajdaList.d.ts
deleted file mode 100644
index dc4c467..0000000
--- a/types/sajdaList.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { Sajda } from "./types";
-export declare const SajdaList: Sajda[];
diff --git a/types/surahList.d.ts b/types/surahList.d.ts
deleted file mode 100644
index ff5662d..0000000
--- a/types/surahList.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { SurahMeta } from "./types";
-export declare const SuraList: SurahMeta[];
diff --git a/vitest.config.ts b/vitest.config.ts
index 0109a67..4ba7bd0 100644
--- a/vitest.config.ts
+++ b/vitest.config.ts
@@ -1,10 +1,10 @@
-import { defineConfig } from 'vitest/config'
+import { defineConfig } from "vitest/config"
 
 export default defineConfig({
   test: {
     globals: true,
-    coverage:{
-        include: ['src/**/*.ts'],
+    coverage: {
+      include: ["src/**/*.ts"]
     }
-  },
-})
\ No newline at end of file
+  }
+})

From 9f9a8d338de4889de25d50343ec085d8ff570827 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:04:24 +0100
Subject: [PATCH 16/20] chore(release): v2.5.2-0

---
 CHANGELOG.md | 24 ++++++++++++++++++++++++
 package.json |  2 +-
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 91cde1d..00d411b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,30 @@
 
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
+## v2.5.2-0
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.4.15...v2.5.2-0)
+
+### 🚀 Enhancements
+
+- Switchfrom jest to vitest (1b37cff)
+- Impove tsdoc (7ff9baa)
+- Better eslint (53fa239)
+- Standard buid process using unbuild (2ab032e)
+- Full cleanup and addition of changelogen (457e5c9)
+
+### 🩹 Fixes
+
+- Addl full unittest coverage (42d17c0)
+
+### 🏡 Chore
+
+- Update deps (fc4baee)
+
+### ❤️ Contributors
+
+- HG ([@husayt](http://github.com/husayt))
+
 ### [2.5.1](https://github.com/quran-center/quran-meta/compare/v2.4.13...v2.4.15) (2022-11-13)
 update dependencies 
 switch from jest to vitest
diff --git a/package.json b/package.json
index 9b3160a..6cd7a96 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "surah",
     "juz"
   ],
-  "version": "2.5.1",
+  "version": "2.5.2-0",
   "license": "MIT",
   "jsdelivr": "dist/index.mjs",
   "unpkg": "dist/index.mjs",

From 44d45831dc71bccfb558ee42a18e3e0300e9d037 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:05:10 +0100
Subject: [PATCH 17/20] chore(release): v2.5.2-1

---
 CHANGELOG.md | 4 ++++
 package.json | 4 ++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 00d411b..460a881 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
 
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
+## v2.5.2-1
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-0...v2.5.2-1)
+
 ## v2.5.2-0
 
 [compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.4.15...v2.5.2-0)
diff --git a/package.json b/package.json
index 6cd7a96..05cc8a8 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "surah",
     "juz"
   ],
-  "version": "2.5.2-0",
+  "version": "2.5.2-1",
   "license": "MIT",
   "jsdelivr": "dist/index.mjs",
   "unpkg": "dist/index.mjs",
@@ -61,7 +61,7 @@
     "coverage": "vitest run --coverage",
     "build": "unbuild",
     "precommit": "lint-staged && vitest --onlyChanged",
-    "prepack": "build",
+    "prepack": "pnpm build",
     "prepare-npm-package": "rimraf dist && rimraf lib_cjs && rimraf lib_es && rimraf docs && pnpm build&&pnpm tsdoc",
     "prerelease": "standard-version&&pnpm prepare-npm-package && pnpm test && pnpm tsdoc",
     "release": "changelogen --release --prerelease --publish --publishTag rc &&git push --follow-tags&&npm publish",

From 4885d66718673e64312bdf012dcdde7bfadf588d Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:28:09 +0100
Subject: [PATCH 18/20] chore(release): v2.5.2-2

---
 CHANGELOG.md | 13 ++++++-------
 package.json |  6 ++----
 2 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 460a881..fb0e233 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,9 +2,10 @@
 
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
-## v2.5.2-1
 
-[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-0...v2.5.2-1)
+## v2.5.2-2
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-1...v2.5.2-2)
 
 ## v2.5.2-0
 
@@ -12,7 +13,8 @@ All notable changes to this project will be documented in this file. See [standa
 
 ### 🚀 Enhancements
 
-- Switchfrom jest to vitest (1b37cff)
+- Switch from jest to vitest (1b37cff)
+- Full rewrite of the project with latest eslint and typescript
 - Impove tsdoc (7ff9baa)
 - Better eslint (53fa239)
 - Standard buid process using unbuild (2ab032e)
@@ -20,7 +22,7 @@ All notable changes to this project will be documented in this file. See [standa
 
 ### 🩹 Fixes
 
-- Addl full unittest coverage (42d17c0)
+- Add full unit test coverage (42d17c0)
 
 ### 🏡 Chore
 
@@ -30,9 +32,6 @@ All notable changes to this project will be documented in this file. See [standa
 
 - HG ([@husayt](http://github.com/husayt))
 
-### [2.5.1](https://github.com/quran-center/quran-meta/compare/v2.4.13...v2.4.15) (2022-11-13)
-update dependencies 
-switch from jest to vitest
 
 ### [2.4.15](https://github.com/quran-center/quran-meta/compare/v2.4.13...v2.4.15) (2022-11-13)
 
diff --git a/package.json b/package.json
index 05cc8a8..001105b 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "surah",
     "juz"
   ],
-  "version": "2.5.2-1",
+  "version": "2.5.2-2",
   "license": "MIT",
   "jsdelivr": "dist/index.mjs",
   "unpkg": "dist/index.mjs",
@@ -61,9 +61,7 @@
     "coverage": "vitest run --coverage",
     "build": "unbuild",
     "precommit": "lint-staged && vitest --onlyChanged",
-    "prepack": "pnpm build",
-    "prepare-npm-package": "rimraf dist && rimraf lib_cjs && rimraf lib_es && rimraf docs && pnpm build&&pnpm tsdoc",
-    "prerelease": "standard-version&&pnpm prepare-npm-package && pnpm test && pnpm tsdoc",
+    "prepack": "pnpm build && pnpm test&&rimraf docs&&pnpm tsdoc",
     "release": "changelogen --release --prerelease --publish --publishTag rc &&git push --follow-tags&&npm publish",
     "test": "pnpm lint && pnpm test:types && pnpm coverage",
     "test:types": "tsc --noEmit",

From 891541ce7b25be2c89747d141b292b053b2b8c67 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:42:15 +0100
Subject: [PATCH 19/20] chore(release): v2.5.2-3

---
 CHANGELOG.md | 4 ++++
 package.json | 5 +++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index fb0e233..d98ec56 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
 
+## v2.5.2-3
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-2...v2.5.2-3)
+
 ## v2.5.2-2
 
 [compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-1...v2.5.2-2)
diff --git a/package.json b/package.json
index 001105b..499c606 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "surah",
     "juz"
   ],
-  "version": "2.5.2-2",
+  "version": "2.5.2-3",
   "license": "MIT",
   "jsdelivr": "dist/index.mjs",
   "unpkg": "dist/index.mjs",
@@ -62,7 +62,8 @@
     "build": "unbuild",
     "precommit": "lint-staged && vitest --onlyChanged",
     "prepack": "pnpm build && pnpm test&&rimraf docs&&pnpm tsdoc",
-    "release": "changelogen --release --prerelease --publish --publishTag rc &&git push --follow-tags&&npm publish",
+    "prerelease": "changelogen --release --prerelease --publish --publishTag rc",
+    "release": "changelogen --release --publish",
     "test": "pnpm lint && pnpm test:types && pnpm coverage",
     "test:types": "tsc --noEmit",
     "tsdoc": "typedoc --options ./typedoc.json",

From 15fd07473a73de123a3011c1bc8c691ee64faf22 Mon Sep 17 00:00:00 2001
From: HG <husayt@gmail.com>
Date: Tue, 8 Oct 2024 18:42:40 +0100
Subject: [PATCH 20/20] chore(release): v2.5.2

---
 CHANGELOG.md | 4 ++++
 package.json | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index d98ec56..97d8bdd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@
 All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
 
 
+## v2.5.2
+
+[compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-3...v2.5.2)
+
 ## v2.5.2-3
 
 [compare changes](https://git+https@github.com/quran-center/quran-meta/compare/v2.5.2-2...v2.5.2-3)
diff --git a/package.json b/package.json
index 499c606..c05c998 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "surah",
     "juz"
   ],
-  "version": "2.5.2-3",
+  "version": "2.5.2",
   "license": "MIT",
   "jsdelivr": "dist/index.mjs",
   "unpkg": "dist/index.mjs",